2011-04-26 9 views
8

का उपयोग कर यूनिट परीक्षण देरी-हस्ताक्षर असेंबली कैसे करें हमारे पास एक प्रोजेक्ट है कि सभी असेंबली देरी-हस्ताक्षरित हैं। हम देरी-हस्ताक्षरित की वजह से nunit (जीयूआई संस्करण) का उपयोग उन विधानसभाओं, परीक्षण काम नहीं करेगा (सभी परीक्षणों में विफल रहा है कर रहे हैं) का परीक्षण तोनूनिट

sn.exe -Vr *,PUBLIC_KEY_TOKEN_HERE 

: विकास मशीनों sn.exe उपकरण का उपयोग कर सत्यापन छोड़ने की तैयारी में हैं। लेकिन अगर उन विधानसभाओं पर फिर से हस्ताक्षर किए जाते हैं, तो परीक्षण कार्य करता है। हम सभी जानते हैं कि एक असेंबली पर फिर से हस्ताक्षर करने के लिए, हमें निजी सार्वजनिक कुंजी जोड़ी फ़ाइल की आवश्यकता है (उदा। mycompany.snk)। हमें नहीं लगता कि यह एक अच्छा अभ्यास है सभी डेवलपर्स को mycompany.snk फ़ाइल दें।

क्या कोई समाधान है ताकि प्रत्येक डेवलपर पुन: इस्तीफे के बिना या mycompany.snk फ़ाइल की आवश्यकता के बिना अपने असेंबली को यूनिट-परीक्षण कर सके?

+1

क्या यह मुद्दा केवल जीयूआई धावक है? क्या सीएलआई धावक काम नहीं करता है? मैं पूछता हूं क्योंकि मैं सत्यापन को छोड़ने के लिए sn.exe का उपयोग करके, मेरी सभी असेंबली (देरी-हस्ताक्षर) कर रहा हूं, और एनआईएनआईटी परीक्षणों को सीएलआई धावक के साथ ठीक कर सकता हूं। मैं जीयूआई धावक से दूर रहता हूं इसलिए मुझे नहीं पता कि मेरे पास एक ही समस्या है या नहीं। यदि आप चाहें तो कोशिश कर सकते हैं। – harlam357

+0

मैं केवल जीयूआई धावक पर परीक्षण करता हूं। आपकी टिप्पणी के आधार पर, ऐसा लगता है कि समस्या केवल जीयूआई धावक पर मौजूद है। –

उत्तर

3

क्या आप विंडोज के 64 बिट संस्करण पर विकास करने के किसी भी मौके से हैं? कुछ समय पहले हमारे पास एक समान समस्या थी, जहां हम असेंबली पर हस्ताक्षर कर रहे थे लेकिन यूनिट परीक्षण के दौरान वे सही ढंग से लोड नहीं हो रहे थे। समस्या यह साबित हुई क्योंकि हम 64 बिट विंडोज़ पर विकास कर रहे थे। यह पता चला है कि दो sn.exe प्रोग्राम हैं, 32 बिट के लिए एक और 64 बिट के लिए एक है। (64 बिट संस्करण विंडोज एसडीके में 32 बिट निष्पादन योग्य के लिए बिन निर्देशिका के नीचे "x64" निर्देशिका में स्थित है - मैं इस समय एक विकास मशीन पर नहीं हूं, क्षमा करें, इसलिए मैं आपको सही पथ नहीं दे सकता याद)। हम 32 बिट संस्करण का उपयोग करके "sn -Vr" कमांड का उपयोग करते हैं, और उसके बाद 64 बिट संस्करण का उपयोग करके एक ही कमांड चलाते हैं और सबकुछ काम करता है।

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