2012-11-15 28 views
8

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

जब मैंने इसे ऊपर उठाने के बिना एक दृश्य स्टूडियो उदाहरण में वेब सेवा समाधान खोलते हैं, तो मैं

की तरह एक निर्माण त्रुटि निम्न कुंजी फ़ाइल आयात नहीं कर सकते मिलती है: Redacted.pfx। कुंजी फ़ाइल पासवर्ड संरक्षित हो सकती है। इसे सही करने के लिए, प्रमाण पत्र को दोबारा आयात करने का प्रयास करें या निम्नलिखित नाम कंटेनर नाम के साथ प्रमाण पत्र को मजबूत नाम सीएसपी में मैन्युअल रूप से स्थापित करें: VS_KEY_Redacted।

जब मैं इस by doing that को ठीक करने का प्रयास करता हूं, तो यह एक त्रुटि संदेश के साथ विफल रहता है कि कुंजी पहले से मौजूद है।

जब मैं बाहर निकलने का प्रयास करता हूं और फिर पीएफएक्स फ़ाइल को फिर से शामिल करता है, तो चीजों को सही नहीं करता है, लेकिन परियोजना गुणों में "मजबूत नाम कुंजी फ़ाइल" ड्रॉपडाउन बनाता है → खाली हस्ताक्षर करना। इसके बाद, वेब सेवा समाधान बनाता है, लेकिन ऐसा लगता है कि लाइब्रेरी (एलिवेटेड) डेस्कटॉप समाधान में साइन इन नहीं होती है, "असेंबली पीढ़ी असफल - संदर्भित असेंबली 'के साथ असफल हो जाती है' रेडक्टेड 'का मजबूत नाम नहीं है"।

अगर मैं वेब सेवा समाधान के भीतर ड्रॉप-डाउन से फिर से PFX फ़ाइल चुनें (और पासवर्ड पुनः दर्ज) करने की कोशिश, मैं मिलता है: आयात करने कुंजी
का प्रयास एक टोकन संदर्भित करने के लिए बनाया गया था

त्रुटि यह

(उच्च) डेस्कटॉप समाधान कार्यों से पीएफएक्स फ़ाइल सेट करना, लेकिन मुझे स्क्वायर वन पर लौटाता है।

ऐसा लगता है कि ऊंचाई के आधार पर, विजुअल स्टूडियो पीएफएक्स को अनलॉक करने के लिए विभिन्न कुंजी स्टोरों में दिखता है। क्या मुझे समस्या के चारों ओर काम करने के लिए प्रेरित विजुअल स्टूडियो के दोनों उदाहरण चलाना है या क्या मैं इसे किसी भी स्थान पर देखने के लिए कह सकता हूं?

+0

यदि आप शामिल करते हैं तो यह काम करता है असेंबलीकेफाइल हार्डकोडेड? – cppanda

+0

क्या कोई कारण है कि आप "व्यवस्थापक के रूप में" दोनों को चलाने के लिए नहीं चाहते हैं? - ऐसा लगता है कि मेरे सभी कोड हस्ताक्षर सिरदर्द दूर हो जाते हैं, और मुझे पाया गया एकमात्र नकारात्मक पक्ष यह है कि आपको संदर्भ साझा करने के लिए रजिस्ट्री प्रविष्टि बनाने की आवश्यकता है (यानी मैप किए गए ड्राइव और ऐसे) सही काम करने के लिए। [एफवाईआई, रजिस्ट्री प्रविष्टि पर ब्योरा यहां पाया जा सकता है: http://www.winability.com/how-to-make-elevated-programs-recognize-network-drives/] – BrainSlugs83

+0

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

उत्तर

0

@ सीसीपीएंडा की टिप्पणी ने इसे हल किया। AssemblyKeyFile संग्रह सहित यह कार्य करता है। उदा .:

[assembly: AssemblyKeyFile("HerpDerpWarblerManagementStudioProTM.snk")] 

लंबी और यह की कमी है कि दो दृश्य स्टूडियो उनके मोड के आधार पर अलग बातें मान जाएगा। समाधान उन्हें एक ही चीज़ मानने के लिए नहीं है, यह उन्हें बताने के लिए है कि क्या करना है।

(मैं एक .snk फ़ाइल का उपयोग करने के बाद से है कि जिस तरह से आप यह करने के लिए यदि आप एक पासवर्ड हर बार हर दूसरे डेवलपर का निर्माण करने की कोशिश करता है फिर से दर्ज नहीं करना चाहती है है चुन लिया है। This question has a lot more information। असल में, आपके पास या तो के लिए एक .snk फ़ाइल का उपयोग करने या अपने निर्माण प्रक्रिया संकलन और फिर sn.exe की एक मंगलाचरण है कि किसी तरह सभी के लिए एक .pfx फ़ाइल का उपयोग करने को पता चल जाएगा के साथ फ़ाइल पर हस्ताक्षर)

(@ccpanda:। आप एक के रूप में अपनी टिप्पणी लिखते हैं उत्तर (और हो सकता है कि आपने किया और स्टैक ओवरफ़्लो ने यह निर्णय लिया कि यह छोटा था), मैं इसे उत्तर के रूप में चिह्नित करूंगा।)