2012-06-22 10 views
9

का उपयोग कर एक क्लिकऑन मैनिफेस्ट पर हस्ताक्षर नहीं कर सकता है। मैं एक विंडोज सर्वर कंप्यूटर पर एक क्लिकऑन Windows Forms प्रोजेक्ट (.NET 3.5/विजुअल स्टूडियो 2010) बनाने की कोशिश कर रहा हूं। (HudsonCI साथ निर्माण की प्रक्रिया को स्वचालित करने के प्रयास में।)एमएसबिल्ड एक अस्थायी कुंजी (त्रुटियों MSB3326 और MSB3321)

ClickOnce प्रकट पर हस्ताक्षर करने के लिए मैं, temp.pfx दृश्य स्टूडियो में एक अस्थायी कुंजी बनाया। मैं अपने वर्कस्टेशन पर विजुअल स्टूडियो से परियोजना को सफलतापूर्वक निर्माण और तैनात कर सकता हूं। लेकिन जब सर्वर मैं निम्न त्रुटि संदेश मिलता है पर MSBuild चल:

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (1970,9): त्रुटि MSB3326: नहीं कर सकते निम्न कुंजी फ़ाइल आयात करें:। कुंजी फ़ाइल पासवर्ड संरक्षित हो सकती है। इसे सही करने के लिए, प्रमाण पत्र को दोबारा आयात करने या प्रमाणपत्र को मैन्युअल रूप से वर्तमान उपयोगकर्ता के व्यक्तिगत प्रमाणपत्र स्टोर में आयात करने का प्रयास करें। [सी:। हडसन \ नौकरियां [...]। Csproj]

सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework64 \ v4.0.30319 \ माइक्रोसॉफ्ट.कॉमोन। लक्ष्य (1 9 70, 9): त्रुटि एमएसबी 3321: आयात कुंजी फ़ाइल "temp.pfx" रद्द कर दिया गया था। [सी: .hudson \ नौकरियों [...] csproj।]

मैं भाग्य के बिना निम्नलिखित प्रश्न और उत्तर के सभी की कोशिश की:

  • स्टैक ओवरफ़्लो सवाल Cannot import the keyfile 'blah.pfx' - error 'The keyfile may be password protected'

    => मेरे मामले में, त्रुटि संदेश प्रमाण पत्र स्टोर का नाम इंगित नहीं करता है बल्कि इसके बजाय "वर्तमान उपयोगकर्ता का व्यक्तिगत प्रमाणपत्र स्टोर" कहता है।

    => यहां तक ​​कि जब "व्यक्तिगत" के साथ स्वीकार किए जाते हैं जवाब की कोशिश कर रहा कंटेनर का नाम (sn -i temp.pfx personal) के रूप में, यह कुंजी पार्स करने के लिए विफल रहता है:

    ALiS_TemporaryKey.pfx में PKCS # 12 ब्लॉब पार्स करने में विफल - - एक आंतरिक त्रुटि o ccurred।

  • स्टैक ओवरफ़्लो सवाल Using MSBuild to sign ClickOnce or assembly results in error MSB3321

    => मैं स्वीकार किए जाते हैं जवाब कोशिश की, लेकिन कुंजी फ़ाइल को आयात नहीं किया जा सकता क्योंकि "या तो उपयोगकर्ता प्रोफ़ाइल सुलभ नहीं है या निजी कुंजी आयात किए जा रहे है कि क्रिप्टोग्राफिक सेवा प्रदाता की आवश्यकता हो सकती है जो आपके सिस्टम पर स्थापित नहीं है "

    => ऐसा ही होता है यदि मैं विंडोज एक्सप्लोरर (रॉबिनडॉटनेट के सुझाव) में इसे डबल-क्लिक करके फ़ाइल आयात करने का प्रयास करता हूं

  • स्टैक ओवरफ़्लो सवाल Signing assemblies with PFX files in MSBuild, Team Build, and TFS

    => उस सवाल का ओपी उपरोक्त दो जवाब के साथ असफल रहा था, उसने मुझे मदद मिलेगी मिला भी, लेकिन दुर्भाग्य से नहीं भी जवाब है कि:

    उपयोगकर्ता के रूप में लॉग इन करें जो बिल्ड मशीन पर MSBuild चलाता है, मैन्युअल रूप से MSBuild का आह्वान करता है, और फिर संकेत मिलने पर पासवर्ड टाइप करें।

    => मैंने लॉग इन किया और msbuild myproject.sln चलाया लेकिन यह मुझे पासवर्ड के लिए भी संकेत नहीं देगा।

    आखिरकार यह मेरे लिए तय किया गया था कि खाता बना रहा है जिसके तहत टीएफएस बिल्ड सेवा स्थानीय मशीन पर व्यवस्थापक चलाती है।

    => खाते कि हडसन (अधिक सटीक: Tomcat) चलाता है पहले से ही एक स्थानीय प्रशासक है। मैंने MSBuild को "व्यवस्थापक के रूप में चलाएं" कमांड लाइन से चलाने की कोशिश की और अभी भी वही त्रुटि संदेश प्राप्त होंगे।


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

अद्यतन 2: अगर मैं एक पुराने अस्थायी कुंजी जो मैं दृश्य   स्टूडियो   2008, इसे सफलतापूर्वक हमारे सर्वर का प्रमाणपत्र संग्रह में आयात किया जा सकता के साथ उत्पन्न किया था ले; विजुअल स्टूडियो 2010 के साथ मैंने जो भी अस्थायी कुंजी बनाई है, उसे आयात नहीं किया जा सकता है।

अद्यतन 3: मैं सर्वर पर एक नया "अस्थायी कुंजी" दृश्य स्टूडियो में बना सकते हैं और सर्वर पर और साथ ही ClickOnce प्रकट पर हस्ताक्षर करने के लिए अपने कार्य केंद्र पर यह दोनों का उपयोग करने में सक्षम था। मैं केवल इसके लिए उचित स्पष्टीकरण नहीं दे सकता - दोनों कंप्यूटर 64-बिट हैं, और मैं दोनों पर विजुअल स्टूडियो 2010 का उपयोग कर रहा हूं। दोनों में v3.5 और v4 (4.0.3031 9) .NET फ्रेमवर्क स्थापित है। मेरा वर्कस्टेशन विंडोज 7 प्रोफेशनल है, और सर्वर Windows Server 2008 आर 2 मानक है।

उत्तर

6

पीएफएक्स फ़ाइल को उस मशीन पर कॉपी करें जिस पर आप निर्माण कर रहे हैं। उस पर डबल-क्लिक करें, और इसे मशीन पर प्रमाणपत्र प्रबंधक में स्थापित करें। सुनिश्चित करें कि आप बिल्ड करने के लिए उपयोग किए गए खाते में लॉग इन हैं।

अन्य सुझाव/प्रश्न: क्या आपके पास मशीन पर .NET का सही संस्करण स्थापित है? क्या आपके पास उस मशीन पर प्रमाणपत्र स्टोर को लिखने के लिए विशेषाधिकार हैं?

यदि आप विजुअल स्टूडियो प्रोजेक्ट खोलते हैं, तो प्रोजेक्ट गुणों पर जाएं और नया प्रमाणपत्र बनाने का प्रयास करें, क्या यह काम करता है? इसे एक पीएफएक्स फ़ाइल बनाना चाहिए और इसे परियोजना में जोड़ना चाहिए। और क्या आप इसे प्रमाणपत्र स्टोर (मेनू स्टार्ट/certmgr.msc) में देख सकते हैं?

+0

परिणामस्वरूप मैंने दूसरे दृष्टिकोण के समान ही परिणाम दिया :-( – chiccodoro

+0

ईमानदार होने के लिए, मुझे नहीं पता कि "हडसन" क्या है। क्या आपके पास मशीन पर .NET का सही संस्करण स्थापित है? इसके अलावा, करें आपके पास उस मशीन पर सर्टिफिकेट स्टोर को लिखने के लिए विशेषाधिकार हैं? यदि आप विजुअल स्टूडियो प्रोजेक्ट खोलते हैं और प्रोजेक्ट गुणों पर जाते हैं और नया प्रमाणपत्र बनाने का प्रयास करते हैं, तो क्या यह काम करता है? इसे एक पीएफएक्स फाइल बनाना चाहिए और इसे प्रोजेक्ट में जोड़ना चाहिए। और क्या आप इसे प्रमाणपत्र स्टोर में देख सकते हैं? (Start/certmgr.msc) – RobinDotNet

+0

मैंने प्रश्न को दोहराया है जैसे कि हडसन को साइड-नोट में केवल एक विवरण बनाने के लिए। – chiccodoro

-1

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

+0

ये कदम वास्तव में उपयोगी होने के लिए बहुत अस्पष्ट हैं। –

0

मैंने पाया कि यदि आप एक अस्थायी.pfx फ़ाइल बनाते हैं और पासवर्ड EMPTY छोड़ देते हैं तो यह बिल्ड मशीन पर ठीक काम करेगा। मुझे एहसास नहीं हुआ कि आप इसे खाली छोड़ सकते हैं और पहली बार यह ओपी के लिए असफल रहा। बिना किसी पासवर्ड के एक दूसरा temp.pfx बनाया और यह मेरे लिए बिल्ड सर्वर पर बनाया गया।

+0

पासवर्ड के बिना एक पीएफएक्स बहुत सुरक्षित नहीं है हालांकि :-) – chiccodoro

0

मेरे पास पूरी तरह से एक ही समस्या थी। और बिल्ड मशीन पर .NET 4.0 के लिए विंडोज एसडीके 7.1 स्थापित करके इसे ठीक किया। पीएस पहले हमने एसडीके 8.0 ए स्थापित किया है, और निर्माण गायन को छोड़कर ठीक काम कर रहा था। ऐसा लगता है, 7.1 सिस्टम में कुछ घटकों को अद्यतन करता है, इसलिए पीएफएक्स काम करना शुरू कर देता है।

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