visual studio 2010 - Keyfile 'blah.pfx' आयात नहीं कर सकता-त्रुटि 'keyfile पासवर्ड संरक्षित हो सकता है'




visual-studio-2010 visual-studio (15)

FYI करें

मैंने स्नैप के साथ sn.exe का उपयोग आधिकारिक कोड साइन पीएफएक्स फ़ाइल (कोड हस्ताक्षर के रूप में खरीदा गया) के रूप में किया था, जिसने नीचे SNK फ़ाइल बनाई और Visual Studio 2013 SNK फ़ाइल का उपयोग करने के लिए ब्राउज किया गया था।

  • जिसने पासवर्ड की समस्या का समाधान किया।

लेकिन फिर भी समस्या यह है कि यह कहता रहता है: "मुख्य फ़ाइल * .. एसएनके में सार्वजनिक / निजी कुंजी जोड़ी नहीं है।"

हमने अभी विज़ुअल स्टूडियो 2008 परियोजनाओं को विजुअल स्टूडियो 2010 में अपग्रेड किया है। हमारी सभी असेंबली Verisign कोड हस्ताक्षर प्रमाणपत्र का उपयोग करके मजबूत हस्ताक्षरित थे। अपग्रेड के बाद से हमें लगातार निम्न त्रुटि मिलती है:

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

यह कुछ डेवलपर मशीनों पर होता है, न कि दूसरों को। कुछ तरीकों से काम करने के लिए उपयोग की जाने वाली कुछ विधियों में शामिल हैं:

  • विंडोज एक्सप्लोरर से कुंजी फ़ाइल को दोबारा स्थापित करना (पीएफएक्स फ़ाइल पर राइट क्लिक करें और इंस्टॉल करें पर क्लिक करें)
  • पहली बार ताजा मशीन पर विजुअल स्टूडियो 2010 को स्थापित करने से पहली बार जब आप प्रोजेक्ट खोलते हैं तो पासवर्ड के लिए आपको संकेत मिलता है, और फिर यह काम करता है। विजुअल स्टूडियो 2008 से अपग्रेड की गई मशीनों पर, आपको यह विकल्प नहीं मिलता है।

मैंने त्रुटि नाम सुझाव के रूप में मजबूत नाम सीएसपी के साथ कुंजी पंजीकृत करने के लिए SN.EXE उपयोगिता (मजबूत नाम उपकरण) का उपयोग करने का प्रयास किया है, लेकिन जब भी मैं विजुअल स्टूडियो 2010, एसएन के साथ आए संस्करण का उपयोग कर किसी भी विकल्प के साथ टूल चलाता हूं .EXE बस कुछ भी करने के बजाए इसके कमांड लाइन तर्क सूचीबद्ध करता है। यह इस बात पर ध्यान दिए बिना कि मैं किस तर्क की आपूर्ति करता हूं।

यह क्यों हो रहा है, और इसे ठीक करने के लिए स्पष्ट कदम क्या हैं? मैं ClickOnce इंस्टॉल और माइक्रोसॉफ्ट कोड हस्ताक्षर पर छोड़ने वाला हूं।


VSCommands 2010 (विजुअल स्टूडियो के लिए प्लगइन) यह आपके लिए स्वचालित रूप से ठीक कर सकता है - बस त्रुटि पर राइट-क्लिक करें और मेनू से ठीक करें पर क्लिक करें। आप इसे विजुअल स्टूडियो गैलरी से प्राप्त कर सकते हैं


इसने मेरी समस्या हल की: अपना वीएस प्रोजेक्ट खोलें

पैकेज.appxmanifest पर डबल क्लिक करें

पैकेजिंग टैब पर जाएं

प्रमाण पत्र का चयन करें पर क्लिक करें

प्रमाणपत्र कॉन्फ़िगर करें पर क्लिक करें

फ़ाइल से चुनें और example.pfx का उपयोग करें कि एकता या कुछ भी बनाया गया है


एक combobox में कुंजी फ़ाइल को अचयनित करना और पासवर्ड दर्ज करना हमारे लिए इस पर मदद करता है।

लेकिन प्रत्येक बार कुंजी फ़ाइल में बदलाव करने की आवश्यकता होती है और ऐसा ठीक नहीं लगता है।


कनेक्ट बग रिपोर्ट के आसपास के काम के मूल लेखक के रूप में, इस संदेश के दो प्रकार हैं (मैंने बाद में खोजा है)

एक नाम के लिए आप मजबूत नामकरण स्टोर की कुंजी आयात करने के लिए sn.exe (आमतौर पर यदि आप मजबूत नामकरण कर रहे हैं) का उपयोग करते हैं।

अन्य संस्करण जिसके लिए आप आयात करने के लिए certmgr का उपयोग करते हैं, जब आप क्लिक-एक बार तैनाती जैसी चीजों के लिए कोडिंग कर रहे हैं (ध्यान दें कि आप दोनों उद्देश्यों के लिए एक ही प्रमाण का उपयोग कर सकते हैं)।

उम्मीद है की यह मदद करेगा।


ठीक है, यह मेरे लिए काम किया। विजुअल स्टूडियो 2010 में व्यवस्थापक के रूप में पुराना समाधान / प्रोजेक्ट खोलें और नया या कॉपी किया गया समाधान / प्रोजेक्ट खोलें। व्यवस्थापक के रूप में, नए विजुअल स्टूडियो 2010 समाधान / प्रोजेक्ट में कॉपी की गई पीएफके फ़ाइल को हटाएं और प्रोजेक्ट गुणों पर जाएं और इसे अचयनित करें।

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


मेरे परिदृश्य में बिल्ड सेवा उसी उपयोगकर्ता खाते का उपयोग नहीं कर रही थी जिसे मैंने sn.exe का उपयोग करके कुंजी आयात की sn.exe

खाते को मेरे व्यवस्थापक खाते में बदलने के बाद, सब कुछ ठीक काम कर रहा है।


मेरे पास एक समान समस्या थी, लेकिन "मजबूत नाम कुंजी फ़ाइल" में पीएफएक्स चुनने के बाद कॉम्बोबॉक्स और पासवर्ड टाइप करने के बाद भी मुझे एक ही त्रुटि मिली (कंटेनर नाम भाग के बिना):

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

साथ ही, "क्लिकऑन मैनिफ़ेस्ट पर हस्ताक्षर करें" प्रमाणपत्र सूचना पैनल पॉप्युलेट नहीं किया गया था।

मैंने अपने पीएफएक्स पर "फ़ाइल से चुनें ..." किया, और यह समस्या हल हो गई।


मेरे लिए कुछ भी काम नहीं किया, लेकिन फिर मैं गया और प्रमाणपत्र प्रबंधक (mmc.exe) में देखा। सर्टिफिकेट को व्यक्तिगत स्टोर में आयात नहीं किया गया था, इसलिए मैंने इसे मैन्युअल रूप से आयात किया और फिर संकलित परियोजना।

विजुअल स्टूडियो प्रोजेक्ट डिज़ाइनर के साइनिंग पेज, साइनिंग असेंबली का उपयोग करके क्लिकऑन मैनिफेस्ट साइनिंग और स्ट्रॉन्ग-नेम असेंबली साइनिंग देखें।


मेरे विंडोज़ इंस्टॉलेशन को SSD ले जाने के बाद मुझे भी यही समस्या थी। मेरे लिए कोई अन्य समाधान काम नहीं करता है।

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


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

  • ओपन प्रोजेक्ट गुण।
  • साइनिंग अनुभाग पर क्लिक करें।
  • कहां कहता है 'एक मजबूत नाम कुंजी फ़ाइल चुनें:', ड्रॉप-डाउन बॉक्स से वर्तमान मान को संशोधित करें:

  • विजुअल स्टूडियो अब आपको पासवर्ड के लिए संकेत देगा। इसे दर्ज करें

  • अपनी परियोजना को बचाओ और पुनर्निर्माण करें।

  • अगर त्रुटि संदेश मिलता है: "एक टोकन को संदर्भित करने का प्रयास किया गया था जो अस्तित्व में नहीं है" बस इसे अनदेखा करें और नीचे दिए गए चरणों को जारी रखें

  • 'पासवर्ड बदलें' बटन पर क्लिक करें:

  • सभी तीन बक्से में मूल पासवर्ड दर्ज करें और ठीक क्लिक करें। अगर आप अपना पासवर्ड बदलना चाहते हैं (या यदि आपका पुराना पासवर्ड जटिलता आवश्यकताओं को पूरा नहीं करता है), तो आप अब ऐसा कर सकते हैं।

  • अपनी परियोजना को बचाओ और पुनर्निर्माण करें।

और जानकारी..


मैंने पाया कि कुछ मामलों में आपको इसे इंस्टॉल करने से पहले इस कुंजी को हटाने का प्रयास करना चाहिए। तो निम्न कार्य करें:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX

मैंने विजुअल स्टूडियो प्रोजेक्ट की .csproj फ़ाइल में निम्न पंक्ति को बदलकर अपने लिए इस मुद्दे को हल किया:

इसने 'आयात नहीं कर सकता' त्रुटि फेंक दी:

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

मूल्य को गलत में बदलकर त्रुटि दूर हो गई।


यहां वर्णित सभी विधियों ने मेरी मदद नहीं की। लेकिन जब मैंने अपनी परियोजना से * .pfx फ़ाइल हटा दी और इसे फिर से असेंबली के हस्ताक्षर में जोड़ा, तो मैंने बिना किसी त्रुटि के अपनी परियोजना बनाई! मैं कारणों की व्याख्या नहीं कर सकता क्यों। लेकिन यह मेरे लिए काम किया।


मैं भी इस समस्या में भाग रहा था। मैं चलकर इस मुद्दे को हल करने में सक्षम था
sn -i <KeyFile> <ContainerName> ( एक प्रमुख कंटेनर में कुंजी जोड़ी स्थापित करता है )।

sn आमतौर पर विंडोज एसडीके के हिस्से के रूप में स्थापित किया जाता है। उदाहरण के लिए C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe । सबसे अधिक संभावना है कि यह स्थान आपके मानक वातावरण के लिए खोज पथ पर नहीं है। हालांकि, विजुअल स्टूडियो द्वारा स्थापित "डेवलपर कमांड प्रॉम्प्ट" अतिरिक्त जानकारी जोड़ता है जिसमें आम तौर पर सही स्थान शामिल होता है।

आपकी पोस्ट के आधार पर ऐसा दिखाई देगा

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

यह आपके पीएफएक्स फ़ाइल के स्थान से चलाना चाहिए, अगर आपके पास वीएस 2010 में लोड किया गया समाधान है तो आप समाधान एक्सप्लोरर से पीएफएक्स फ़ाइल पर राइट क्लिक कर सकते हैं और ओपन कमांड प्रॉम्प्ट चुन सकते हैं जो .net 2010 cmd प्रॉम्प्ट टूल लॉन्च करेगा सही निर्देशिका।

इस स्न कमांड को चलाने से पहले मैंने पीएफएक्स को फिर से क्लिक करके फिर से इंस्टॉल किया और इंस्टॉलेशन चुनना हालांकि काम नहीं किया। बस कुछ ध्यान दें क्योंकि यह समाधान प्रदान करने वाले दोनों का संयोजन हो सकता है।

उम्मीद है कि यह आपकी समस्या को हल करने में मदद करता है।







pfx