2009-07-30 13 views
26

हमारे पास अलग-अलग वातावरण के लिए विभिन्न कॉन्फ़िगरेशन फ़ाइलों के साथ एक ही असेंबली के कई तैनाती हैं। हम अलग-अलग परिनियोजन पहचान (Program_ENV1, Program_ENV2, आदि) के साथ अलग-अलग क्लिकऑन परिनियोजन के लिए इन्हें पैकेज करते हैं।विभिन्न परिनियोजन पहचान के साथ एकाधिक क्लिकऑन इंस्टॉलेशन, लेकिन एक ही एप्लीकेशन पहचान

एप्लिकेशन पहचान उन सभी के लिए Program.exe है, क्योंकि हमारे पास एक तृतीय-पक्ष घटक है जिसके लिए निष्पादन योग्य की आवश्यकता होती है, जिसके लिए इसे संकलित किया गया था।

जब हम एक ही मशीन (परीक्षण के लिए) पर एक ही संस्करण संख्या के एकाधिक इंस्टॉल करना चाहते हैं, तो हमें स्थापना पर एक त्रुटि मिलती है कि एक ही एप्लिकेशन पहचान वाला कुछ पहले से मौजूद है।

हम प्रत्येक परिनियोजन के लिए नए संस्करण संख्याओं के साथ अलग-अलग निर्माण नहीं करना चाहते हैं (संस्करण X.X.X.45 असेंबली पर हस्ताक्षर किए गए क्यूए, संस्करण X.X.X.46 नहीं)।

क्या इस मुद्दे के आसपास कोई और तरीका है?

उत्तर

1

MageUI का उपयोग करने का प्रयास करें। अपनी तैनाती प्रकट करें (एक। अनुप्रयोग विस्तार के साथ एक) खोलें। बाईं ओर सूची से "नाम" का चयन करें और "नाम" टेक्स्टबॉक्स संपादित करें। फिर सूची से "विवरण" का चयन करें और "उत्पाद" फ़ील्ड संपादित करें। इस तरह आप स्टार्ट मेनू पर और प्रोग्राम जोड़ें/निकालें में अपने अलग-अलग इंस्टॉलेशन को अलग करने में सक्षम होंगे।

अपने परिवर्तनों को सहेजें, मैनिफेस्ट पर दोबारा हस्ताक्षर करें, और आपको जाने के लिए अच्छा होना चाहिए।

+1

डिस्प्ले नाम विभिन्न पर्यावरण तैनाती के लिए पहले से ही अलग हैं। यह मुद्दा यह है कि उनके पास एक ही एप्लीकेशन पहचान है और क्लिकऑन एक ही मशीन पर उन्हें एक तरफ स्थापित करने की अनुमति नहीं दे रहा है। – Karg

+0

क्या आप वास्तव में मेरे समाधान का प्रयास करते थे? MageUI के माध्यम से "नाम" प्रॉपर्टी सेट करना आपकी एप्लिकेशन पहचान बदलता है और आपके ऐप के कई संस्करणों को साइड-बाय-साइड स्थापित करने की अनुमति देता है। यदि आपका प्रदर्शन नाम पहले से ही अलग है, तो आपको "विवरण" संपत्ति को बदलने में परेशानी की आवश्यकता नहीं है। – codeConcussion

+0

@codeConcussion, मैंने आपके चरणों का पालन किया। लेकिन अभी भी अद्यतन नाम प्रारंभ में दिखाई नहीं देता है और प्रोग्राम जोड़ें/हटाएं। कोई विचार? धन्यवाद। –

16

क्लिकऑन एप्लिकेशन के समवर्ती संस्करणों को चलाने के लिए, आपको असेंबलीनाम बदलना होगा, और यह अनुशंसा की जाती है कि आप प्रकाशन गुणों में उत्पाद नाम भी बदल दें, ताकि आप एक प्रारंभ मेनू में बता सकें कि कौन सा है।

Click here to see how to Install Multiple Versions Concurrently

+0

साइट पर वीडियो अब और काम नहीं करता है। –

1

KARG, यदि आप MageUI का उपयोग आप ApplicationIdentity बदल सकते हैं और एक ही बार में एक ही आवेदन के कई प्रकाशित संस्करण चला सकते हैं।

3

उत्पादन के आधार पर क्यूए के लिए नई तैनाती बनाने के लिए -u -Update विकल्प का उपयोग करके मैं समाप्त हुआ।

यहाँ एक को सत्यापित

  1. एक सरल WPF आवेदन बनाने के चरणों मैं परीक्षण करने के लिए किया हैं
  2. परियोजना के लिए
  3. की नकल की mage.exe के बाद से दृश्य स्टूडियो का निर्माण समय में समस्या का समाधान नहीं कर सकते हैं
  4. जोड़ा गया परियोजना के पद के लिए नीचे पाठ का निर्माण

सीडी "$ (TARGETDIR)"

012,

"$ (ProjectDir) mage.exe" -नवीन एप्लिकेशन -नाम $ (ProjectName) -p msil -TrustLevel FullTrust -Version 1.0.0.0 -FromDirectory। -ToFile "। \ $ (TargetFileName) .manifest"

"$ (ProjectDir) mage.exe" - नई तैनाती - गलत स्थापित करें- नाम $ (ProjectName) -p msil -Version 1.0.0.0 -AppManifest "। \ $ (TargetFileName) .manifest "-ToFile"। \ $ (TargetName)। अनुप्रयोग "

" $ (ProjectDir) mage.exe "-Update"। \ $ (TargetName)। अनुप्रयोग "- गलत स्थापित करें- नाम $ (प्रोजेक्टनाम) .QA -p msil -Version 1.0.0.0 -AppManifest "। \ $ (TargetFileName) .manifest" -ToFile "।\ $ (टार्गेटनाम) .QA.application सही ढंग से $ (TARGETDIR) " के माध्यम से सीडी" $ (TARGETDIR) " क्योंकि mage wouln't प्रक्रिया निर्देशिका और filepaths"

मैं को बदलने के लिए की जरूरत " जब मैं रिक्त स्थान है कि दोहरे उद्धरण चिह्नों में बंद होते हैं साथ यह पथ दे दी है। कि चारों ओर पाने के लिए, मैं जहां फाइलों के लिए बनाया जाता के स्थान पर वर्तमान निर्देशिका निर्धारित किया है।

2 लाइन प्रकट फ़ाइल बनाता है

तीसरी पंक्ति उत्पादक बनाता है एन तैनाती फ़ाइल।

4 लाइन उत्पादन तैनाती फ़ाइल से क्यूए तैनाती फ़ाइल बनाता है। (नोट: मैं तैनाती फाइल करने के लिए क्यूए और एप्लिकेशन नाम जोड़ रहा।)

4 लाइन बनाई गई करने के लिए एक 2 आवेदन फाइल का कारण बनता है। जब दोनों एप्लिकेशन चलाए जाते हैं, तो उनके पास समान बाइनरी होगी लेकिन प्रत्येक के लिए ApplicationDeployment.UpdateLocation अलग-अलग होंगे। एक में फ़ाइल नाम $ (TargetName) होगा। आवेदन और दूसरे के पास फ़ाइल नाम $ (TargetName) होगा। QA.plplication। मेरी कोड में मैं इस का उपयोग निर्धारित करने के लिए जो आवेदन की 'संस्करण' भाग गया था (क्यूए या उत्पादन)

+0

मुझे समस्या और निर्देशिका पथ के साथ समस्या मिली ... यह पीछे की ओर स्लेश की तरह नहीं है। यह अंत E.x पर एक अवधि जोड़कर तय किया जा सकता है .: यह "सी: \ Foo \ Bar \" के साथ काम करेगा। लेकिन "सी: \ Foo \ Bar \" –

+0

कोई विचार नहीं है कि यह एक हस्ताक्षरित क्लिकऑन ऐप के साथ कैसे काम कर रहा है? मैं इसे करने की कोशिश कर रहा हूं, लेकिन यह इतना आसान प्रतीत नहीं होता है ... –

-1

प्रत्येक परिवेश के लिए, पर्यावरण नाम के एक पोस्टफ़िक्स साथ अलग-अलग विधानसभा नाम और उत्पादों के नाम रख सकते हैं। इसके अलावा, प्रत्येक परिवेश के लिए एक GUID बनाते हैं, और AssemblyInfo.cs में जोड़ने, उदाहरण के लिए:

[assembly: GuidAttribute("FA380FBE-11B0-406E-88D3-AF40BE93F7D6")] 

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

+0

उपयोगी उत्तर, लेकिन यह मूल प्रश्न का उत्तर नहीं देता है: "एप्लिकेशन पहचान उन सभी के लिए Program.exe है क्योंकि हमारे पास एक है तीसरे पक्ष के घटक जिसके लिए निष्पादन योग्य की आवश्यकता होती है, जिसका उपयोग उसी नाम के लिए किया गया था जैसा कि इसे संकलित किया गया था। " इसलिए डाउनवॉटिंग। –

संबंधित मुद्दे