2013-02-06 13 views
5

क्या उपयोगकर्ता को संकेत दिए बिना क्लिकऑन एप्लिकेशन इंस्टॉल करने का कोई तरीका है? मैं "रन/डू नॉट रन" के बारे में बात कर रहा हूं कि उपयोगकर्ता को एप्लिकेशन चलाने पर पहली बार मिल जाता है।उपयोगकर्ता को संकेत दिए बिना ClickOnce ऐप कैसे इंस्टॉल करें?

कुछ सुराग here प्रतीत होता है लेकिन मेरा मानना ​​है कि यह "ऊंचाई" (यूएसी) और सुरक्षा संकेतों को छोड़ने के बारे में है, न कि वास्तविक प्रारंभिक "रन/डू नॉट रन" स्क्रीन।

मैं केवल अतीत में इंस्टॉल किए गए एप्लिकेशन को चुपचाप अपडेट करने के बारे में जानकारी प्राप्त कर सकता हूं, लेकिन पहली बार चुपचाप एप्लिकेशन इंस्टॉल करने के बारे में कुछ भी नहीं।

मैं भी this post पाया जो संबंधित प्रतीत होती है, लेकिन फिर, यकीन नहीं करता है, तो हम एक ही उपयोगकर्ता शीघ्र बारे में बात कर रहे हैं ...

उत्तर

2

वहाँ उपयोगकर्ता को संकेत दिए बिना एक ClickOnce आवेदन स्थापित करने के लिए कोई रास्ता नहीं है। यदि आप चाहते हैं कि उपयोगकर्ता उस पर डबल-क्लिक करने में सक्षम हो, और यह उपयोगकर्ता के सत्यापन के बिना बस स्थापित करता है, तो क्लिकऑन का उपयोग न करें। स्पष्ट रूप से, मेरे अनुभव में, केवल एंटरप्राइज़ वातावरण में एसएमएस के साथ धक्का दिया गया मैलवेयर और संकुल उपयोगकर्ता को बिना किसी संकेत के इंस्टॉल करते हैं।

+0

धन्यवाद रॉबिन, यह मेरे शोधों ने मुझे भी दिखाया है। यह वास्तव में एक पैकेज है जो मेरे उद्यम वातावरण में तैनात किया जाना है। यह कुछ है जो मैं अपने कर्मचारियों को हर समय चलाने के लिए चाहता हूं, इसलिए चुप इंस्टॉल को प्राथमिकता दी गई थी। – Joe

+0

मूक इंस्टॉल उपयोगकर्ताओं के लिए तैनात करने के खिलाफ नेटवर्क स्क्रिप्ट लिखने के लिए भी सहायक है। – Mike

+0

यह सटीक नहीं है, यह सही है, जब यह सटीक है, सिर्फ इसलिए कि आपको जवाब पसंद नहीं है। – RobinDotNet

4

कस्टम क्लिकऑन इंस्टॉलर बनाने के बारे में कैसे? http://msdn.microsoft.com/en-us/library/dd997001.aspx

अपडेट किया गया लिंक (06 अक्टू 2016)

Walkthrough: Creating a Custom Installer for a ClickOnce Application

+0

संदर्भित समाधान बहुत अच्छा काम करता है। अगर लिंक दूर हो जाता है, तो यह मैनिफेस्ट डाउनलोड करने के लिए इनप्लेसहोस्टिंग मैनेजर क्लास का उपयोग करता है, आवेदन आवश्यकताओं पर जोर देता है, फिर एप्लिकेशन डाउनलोड करता है (इंस्टॉल करता है)। –

6

यह हालांकि आप अभी भी वास्तव में अधिक फाइलों को कॉपी करने की समस्या आती है, "रन"/"भागो मत करो" शीघ्र से बचने के लिए संभव है उपयोगकर्ता को, जो आमतौर पर उन्हें एक लिंक के माध्यम से। एप्लिकेशन को लॉन्च करने की आवश्यकता होती है। हालांकि, आप इसे लॉगिन स्क्रिप्ट या उन पंक्तियों के साथ कुछ के माध्यम से लॉन्च करने में सक्षम हो सकते हैं। संभवतः आपने उस समस्या को किसी भी तरह हल कर लिया है क्योंकि यह आपके प्रश्न में निहित है। दूसरा प्रश्न जो आप इसके चारों ओर घूमने के लिए जुड़ा हुआ है लेकिन यह वास्तव में आपको हर तरह से नहीं मिलता है।

मुझे पता है कि आप "रन"/"रन न करें" प्रॉम्प्ट को बाईपास कर सकते हैं क्योंकि मैंने इसे क्लिकऑन के साथ सफलतापूर्वक किया है जिसे हम कियोस्क मशीनों पर एक कस्टम खोल के रूप में तैनात करते हैं। कुंजी यह है कि क्लिकऑन पर एक विश्वसनीय प्रकाशक द्वारा हस्ताक्षर किए जाने हैं। यहां तक ​​कि यदि आपके पास क्लाइंट मशीन पर कॉन्फ़िगर की गई सही सामग्री है तो स्व-हस्ताक्षरित भी ठीक है।

तो, नेटवर्क प्रशासक समूह नीति को धक्का देते हैं जो कोड-हस्ताक्षर प्रमाणपत्र पर भरोसा करता है जिसका उपयोग आपके आवेदन पर हस्ताक्षर करने के लिए किया जा रहा है। http://technet.microsoft.com/en-us/library/cc770315(v=WS.10).aspx, पुन: यहाँ संक्षेप में:

  1. ओपन समूह नीति प्रबंधन कंसोल वहाँ कैसे करना है कि यहाँ TechNet पर के बारे में जानकारी है।

  2. प्रमाणपत्र ढूंढने के लिए कोई मौजूदा या नया जीपीओ बनाएं। सुनिश्चित करें कि जीपीओ डोमेन, साइट या संगठनात्मक इकाई से जुड़ा हुआ है जिसका उपयोगकर्ता आप पॉलिसी से प्रभावित होना चाहते हैं।

  3. जीपीओ पर राइट-क्लिक करें, और उसके बाद संपादित करें का चयन करें। समूह नीति प्रबंधन संपादक खुलता है, और नीति वस्तु की वर्तमान सामग्री प्रदर्शित करता है।

  4. नेविगेशन फलक में, कंप्यूटर कॉन्फ़िगरेशन \ विंडोज सेटिंग्स \ सुरक्षा सेटिंग्स \ सार्वजनिक कुंजी नीतियां \ विश्वसनीय प्रकाशक खोलें।

  5. क्रिया मेनू पर क्लिक करें, और उसके बाद आयात करेंक्लिक करें।

  6. प्रमाण पत्र ढूंढने और आयात करने के लिए प्रमाणपत्र आयात विज़ार्ड में निर्देशों का पालन करें।

  7. यदि प्रमाणपत्र स्वयं हस्ताक्षरित है, और विश्वसनीय रूट प्रमाणीकरण प्राधिकरण प्रमाणपत्र स्टोर में मौजूद प्रमाणपत्र में वापस नहीं देखा जा सकता है, तो आपको प्रमाणपत्र को उस स्टोर में कॉपी करना होगा। नेविगेशन फलक में, विश्वसनीय रूट प्रमाणन प्राधिकरण पर क्लिक करें, और फिर उस स्टोर में प्रमाणपत्र की एक प्रति स्थापित करने के लिए चरण 5 और 6 दोहराएँ।

1

को MikeBazs उत्तर इसके अलावा, मैं निम्नलिखित "वर्कअराउंड" जो एक क्लिक-बार-आवेदन "गैर-सहभागी" और "लगभग मूक" (उपयोगकर्ता प्रगति देखता है की स्थापना करता है प्रदान करना चाहते हैं -window स्थापना के दौरान, कोई क्लिक आवश्यक और/या संभव)

कुछ "मुद्दे" पर विचार कर रहे हैं, लेकिन अगर आप इस गाइड का पालन करें, परिणाम होना चाहिए कि तुम क्या जरूरत है:

1.) अपने आवेदन पर हस्ताक्षर करें: विजुअल स्टूडियो के भीतर आप आसानी से अपने आवेदन के साथ अपने आवेदन पर हस्ताक्षर कर सकते हैं, यह कोई बड़ा नहीं है सौदा।

2.) प्रमाण पत्र का वितरण करें: आदेश में संवाद से बचने के लिए, अनुप्रयोग स्थापित किया जाना चाहिए, तो आप (उस के लिए एक जीपीओ का प्रयोग किसी भी मशीन पर निम्नलिखित दुकानों के लिए अपने प्रमाण पत्र वितरित करने के लिए की जरूरत है): Trusted Publishers और Trusted Root Certification Authorities

अब, उपयोगकर्ता एक क्लिक के साथ एप्लिकेशन इंस्टॉल करने में सक्षम हैं - कोई सुरक्षा प्रश्न नहीं। लेकिन हम शून्य चाहते क्लिक करता है:

if (-not (Test-Path env:APPInstalled)){ 
    Start-Process "\\server\share\Application\setup.exe" 

    # Set Flag for "Installed" 
    [Environment]::SetEnvironmentVariable("APPInstalled", "1", "User") 
} 

मैं एक उपयोगकर्ता-पर्यावरण चर APPInstalled कहा जाता है प्रयोग किया है:

3.) एक powershell स्क्रिप्ट, सर्वर पर स्थित है, जो अपने आवेदन के setup.exe को आमंत्रित यह निर्धारित करने के लिए कि एप्लिकेशन को इंस्टॉलेशन की आवश्यकता है या नहीं।

अब, उपयोगकर्ता उस स्क्रिप्ट को निष्पादित कर सकते हैं, केवल एक बार इंस्टॉलेशन प्राप्त करने के बाद कोई और पुष्टि आवश्यक नहीं है। लेकिन एप्लिकेशन स्थापना के बाद शुरू होता है।

4.) अपने आवेदन के स्रोत कोड को संशोधित करें: मैंने एप्लिकेशन के पहले भाग का पता लगाने के लिए एक डमी फ़ाइल का उपयोग किया। यह FirstRun, (यानी स्थापना के बाद दाएं) है अगर मैं सिर्फ इसे फिर से शट डाउन:

private void Form1_Load(object sender, EventArgs e) 
    { 
     //first run? That's a initial deployment, close application. 
     if (!File.Exists("C:\\some\\static\\path\\notfirstrun.dat")) 
     { 
      File.WriteAllText("C:\\some\\static\\path\\notfirstrun.dat", "1"); 
      Application.Exit(); 
     } 

अब, उपयोगकर्ताओं, thaht स्क्रिप्ट निष्पादित कर सकते हैं केवल आगे कोई आवश्यक पुष्टि के साथ एक बार एक अधिष्ठापन हो रही है और आवेदन नहीं है सेटअप के बाद "ऑटो-स्टार्ट"।

लेकिन हम "क्लिक" रूप में अच्छी तरह से बचना चाहते हैं:

अगर हम सेटअप स्टार्टअप-फ़ोल्डर में powershell स्क्रिप्ट - यह पॉप अप होता है, जो बदसूरत है। अगर हम इसे लॉगिन-स्क्रिप्ट के रूप में सेट करते हैं, तो यह उपयोगकर्ता-संदर्भ में नहीं चलता है, जो क्लिक-वन के लिए आवश्यक है।

"इस" समस्या के समाधान के रूप में, आप इसे vbs स्क्रिप्ट के अंदर लपेट सकते हैं, जिसमें पावरहेल स्क्रिप्ट को कॉल किया जाता है।ध्यान दें, जो इस उपयोगकर्ता के संदर्भ में निष्पादित किया जाता है, तो उपयोगकर्ता powershell-आलेख निष्पादित करने के अनुमतियों की आवश्यकता:

Dim objShell 
Set objShell=CreateObject("WScript.Shell") 

strCMD="powershell.exe -sta -noProfile -NonInteractive -nologo -ExecutionPolicy Bypass -f \\server\share\scripts\install_App.ps1" 
objShell.Run strCMD,0,True 
अंत में

, "टास्क-समयबद्धक" जो चलाता है में एक "टास्क" बनाने के लिए एक जीपीओ का प्रयोग करें vbs -स्क्रिप्ट लॉगिन के बाद 30 सेकंड, केवल अगर उपयोगकर्ता लॉग ऑन है।

सभी उपयोगकर्ता "स्थापना" प्रगति देखेंगे।

संक्षेप में:

    कि एक inivisible vbs स्क्रिप्ट के अंदर स्क्रिप्ट PowerShell एक powershell स्क्रिप्ट
  • चादर के साथ स्थापना
  • तैनात
  • ट्रिगर साइन अपने कोड
  • वितरित करना यदि आपके प्रमाण पत्र यह सुनिश्चित करने के लिए कि यह उपयोगकर्ता संदर्भ में चलता है, कार्य-शेड्यूलर का उपयोग करके प्रत्येक मशीन पर vbs स्क्रिप्ट।
संबंधित मुद्दे