ClickOnce को एक ही वातावरण (.NET Framework संस्करण केवल) में एक ही प्रोजेक्ट से एकाधिक प्रकाशित प्रोग्राम स्थापित करने की अनुमति दें

पेज अद्यतन :
पेज निर्माण की तारीख :

कार्रवाई जाँच वातावरण

दृश्य स्टूडियो
  • विजुअल स्टूडियो 2022
.NET Framework
  • .NET फ्रेमवर्क 4.8

आवश्यक वातावरण

ढांचा
  • सामान्य रूप से Windows प्रपत्र (.NET Framework)
  • WPF (.NET Framework) सामान्य रूप से

पहले

यह सुझाव वर्णन करता है कि एक ही वातावरण में अलग-अलग एक ही प्रोजेक्ट से एकाधिक प्रकाशित ClickOnce को स्थापित करने के लिए कैसे करें।

विभिन्न कॉन्फ़िगरेशन में एक ही प्रोजेक्ट से एकाधिक प्रतिलिपियाँ प्रकाशित करने की प्रक्रिया के बारे में

उदाहरण के लिए, एक ही प्रोजेक्ट में भी, यदि बिल्ड कॉन्फ़िगरेशन के आधार पर संसाधन सामग्री परिवर्तित की जाती है, तो आप एक अलग प्रोग्राम के रूप में प्रकाशित करना चाह सकते हैं. यह .NET (कोर) संस्करण में संभव है, लेकिन Visual Studio की मानक सुविधाओं के साथ .NET Framework संस्करण में नहीं है।

इस विधि को बैच प्रोग्राम का उपयोग करके निम्न युक्तियों में संक्षेप ति किया गया है। इस युक्तियों को इस आधार पर समझाया गया है कि निम्नलिखित सामग्री पूरी हो गई है।

शर्तें जिनके तहत ClickOnce अलग-अलग अनुप्रयोगों के रूप में स्थापित करता है

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

मुझे यह एक अलग आवेदन प्रतीत करने की आवश्यकता है, लेकिन संदर्भित लेख के अनुसार, निम्नलिखित पैरामीटर एप्लिकेशन की पहचान करते हैं:

संदर्भ: (.NET) जब मैं ClickOnce के साथ प्रकाशित करने के बाद एप्लिकेशन लॉन्च करता हूं, तो मुझे लगता है कि "प्लेसमेंट आईडी सदस्यता से मेल नहीं खाती है"

  • अनुप्रयोग का नाम
  • सार्वजनिक कुंजी टोकन
  • संस्कृति
  • प्रोसेसर आर्किटेक्चर (उदाहरण के लिए, x86)

इनमें से, मुझे लगता है कि "संस्कृति" और "प्रोसेसर आर्किटेक्चर" को बदलना अवांछनीय है क्योंकि अनपेक्षित प्रसंस्करण परिणामों की संभावना है।

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

बाकी एक "सार्वजनिक कुंजी टोकन" है, लेकिन यह आपको कई प्रमाण पत्र बनाने की अनुमति देता है, चूंकि इसे ClickOnce प्रकाशन के समय पैरामीटर के रूप में निर्दिष्ट किया जा सकता है, इसलिए मैं इस समय के साथ एप्लिकेशन की पहचान करना चाहता हूं।

ऑपरेशन जाँच प्रक्रिया

परियोजना बनाने के बिंदु से उस बिंदु तक जहां यह बैच फ़ाइल के रूप में प्रकाशित करने के लिए तैयार है, यह निम्नलिखित युक्तियों के समान है, इसलिए कृपया उस बिंदु तक की प्रक्रिया के लिए इसे देखें।

कोई प्रमाणपत्र बनाना

इस बार, हम नमूने के लिए एक परीक्षण प्रमाण पत्र के साथ पुष्टि करेंगे। मूल रूप से, यह एक नियमित प्रमाण पत्र के साथ किया जाना चाहिए, लेकिन चूंकि इसके लिए प्रमाण पत्र निर्माण और प्रमाण पत्र प्राधिकरण तैयारी जैसे मुख्य विषय के अलावा अन्य प्रक्रिया की आवश्यकता होगी, इसलिए मैं प्रमाण पत्र से संबंधित स्पष्टीकरण को बाहर कर दूंगा। उत्पादन में, यह परीक्षण प्रमाणपत्र फ़ाइल को उत्पादन फ़ाइल के साथ प्रतिस्थापित करने के लिए ठीक है।

आप प्रोजेक्ट बनाने और प्रकाशन के लिए बैच बनाने के बाद, Visual Studio पर वापस जाएँ। प्रोजेक्ट गुण खोलें और बाईं ओर मेनू से साइन इन करें चुनें। वहाँ के लिए एक चेक है "ClickOnce मैनिफ़ेस्ट पर हस्ताक्षर करें" तो यह जाँच करें.

अब दो प्रमाण पत्र बनाएँ। इस बार हम इसे इस स्क्रीन पर बनाएंगे, लेकिन "। pfx "फ़ाइल प्रारूप, वहाँ अन्य तरीकों से प्रमाण पत्र बनाने के साथ कोई समस्या नहीं है.

निचले दाएं कोने में एक "टेस्ट सर्टिफिकेट बनाएँ" बटन है, इसलिए इसे क्लिक करें।

आप पासवर्ड भी डाल सकते हैं, लेकिन यह काम करता है कि आप इसे अंदर डालते हैं या नहीं। हालांकि, यदि आप एक पासवर्ड डालना चाहते हैं, तो प्रक्रिया परेशानी होगी, इसलिए मैं इसे इस बार नहीं रखूंगा।

आपके प्रोजेक्ट के लिए कोई प्रमाणपत्र (.pfx) फ़ाइल जनरेट की गई है. यहाँ जनरेट किया गया फ़ाइल नाम निश्चित है लेकिन बाद में बदला जा सकता है. वैसे यहां बनाए गए टेस्ट सर्टिफिकेट की वैलिडिटी एक साल की है। एक साल के बाद, आपको एक नया प्रमाणपत्र फिर से बनाना होगा।

एक और बनाने के लिए एक ही चरणों का पालन करें।

इस बार, हम डीबग बिल्ड और रिलीज़ बिल्ड में प्रकाशित करेंगे, इसलिए हम नाम को एक स्पष्ट में बदल देंगे।

बैच संशोधन

आपके द्वारा बनाई गई बैच फ़ाइल (.bat) को किसी पाठ संपादक में खोलें और msbuild के पैरामीटर में निम्न जोड़ें:

पैरामीटर नाम विवरण आवश्यक
ManifestKeyFile प्रमाण पत्र का फ़ाइल नाम (.pfx). प्रोजेक्ट फ़ाइल से संबंधित या निरपेक्ष पथ निर्दिष्ट करें.
ManifestCertificateThumbprint मैनिफ़ेस्ट प्रमाणपत्र का थंबप्रिंट. मूल्य में डाल दिया जा करने के लिए कुछ भी हो सकता है, लेकिन यह हर तरह से में रखा जाना चाहिए।
उत्पाद का नाम उत्पाद का नाम. यह प्रारंभ मेनू या कार्यक्रमों की सूची का प्रदर्शन नाम बन जाता है।
PublisherName सार्वजनिक कंपनी का नाम। प्रारंभ मेनू में प्रोग्राम आयोजित करते समय यह फ़ोल्डर नाम बन जाता है.

उपर्युक्त के आधार पर, पैच फ़ाइल को निम्नानुसार संशोधित करें।

ClickOnceDebug प्रकाशित करता है.bat (उदाहरण)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Debug /p:PublishUrl="publish\Debug\\" /p:InstallUrl="\\xxxxServer\publish_Debug\\" /p:ManifestKeyFile="ClickOnceMultipleInstallDebug.pfx" /p:ManifestCertificateThumbprint="Debug" /p:ProductName="CliclOnce テスト Debug システム" /p:PublisherName="Sorceryforce"

ClickOnceRelease समस्या.bat (उदाहरण)

call "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
cd %~dp0
msbuild ClickOnceBuildConfiguration.sln /t:Publish /t:CopyPublishedApplication /p:Configuration=Release /p:PublishUrl="publish\Release\\" /p:InstallUrl="\\xxxxServer\publish_Release\\" /p:ManifestKeyFile="ClickOnceMultipleInstallRelease.pfx" /p:ManifestCertificateThumbprint="Release" /p:ProductName="CliclOnce テスト Release システム" /p:PublisherName="Sorceryforce"

ManifestKeyFile प्रत्येक मान एक भिन्न प्रमाणपत्र फ़ाइल निर्दिष्ट करता है। ManifestCertificateThumbprint का मूल्य कुछ भी हो सकता है, लेकिन इसे शामिल करना सुनिश्चित करें क्योंकि यदि आप इसे नहीं डालते हैं तो एप्लिकेशन को किसी अन्य के रूप में पहचाना नहीं जा सकता है।

वैसे, चूंकि इस बार एक ही वातावरण में दो प्रोग्राम स्थापित किए गए हैं, इसलिए पैरामीटर जोड़े गए हैं ताकि ProductName उन्हें प्रतिष्ठित किया जा सके। PublisherName अपनी पसंद पर।

समस्या

इनपुट के बाद, प्रत्येक बैच फ़ाइल निष्पादित करें और इसे प्रकाशित करें।

यदि xxxx.application आपके द्वारा प्रकाशित फ़ाइल में है, तो इसे किसी पाठ संपादक में खोलें और सुनिश्चित करें कि इसका कोई भिन्न मान हैpublicKeyToken .

बैठाना

प्रकाशित फ़ाइलों को सार्वजनिक फ़ोल्डर में प्रतिलिपि बनाने के बाद, उन्हें setup.exe स्थापित करने के लिए चलाएँ.

यदि आप जारी करने के समय प्रमाण पत्र दर्ज करते हैं, तो स्थापना के समय निम्न स्क्रीन प्रदर्शित की जाएगी. यदि यह एक परीक्षण प्रमाण पत्र है, तो प्रकाशक की पुष्टि नहीं की जा सकती है, इसलिए इसे स्थापित करें जैसा कि यह है।

पहला कार्यक्रम स्थापित और लॉन्च किया गया था।

मैं दूसरे को स्थापित करने की कोशिश करूंगा।

दूसरे को भी स्थापित किया गया था और लॉन्च किया गया था।

बेशक, दोनों एक ही समय में काम कर रहे हैं।

ProductName चूंकि यह संलग्न था, इसलिए इसे स्टार्ट मेनू में अलग से प्रदर्शित किया जाता है।

आप दोनों को ऐप्स की सूची में भी देख सकते हैं।