2010-04-30 22 views
6

में अपग्रेड करने के बाद काम नहीं करता है मैंने हाल ही में वीएस -2008/.NET 3.5 एसपी 1 प्रोजेक्ट को वीएस -2010 और .NET 4 में अपग्रेड किया है। मेरे पास एक पोस्ट-बिल्ड इवेंट है जो एक्सएमएलएसरियलाइजर्स असेंबली उत्पन्न करने के लिए एसजीएनएन को कॉल करता है।एसजीएनएन वीएस -2008 से वीएस -2010

जब भी मैं इसे चलाने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है।

"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\sgen.exe" /debug /force /verbose /c:"platform:x86" "C:\path\to\SomeAssembly.dll" 
Microsoft (R) Xml Serialization support utility 
[Microsoft (R) .NET Framework, Version 2.0.50727.3038] 
Copyright (C) Microsoft Corporation. All rights reserved. 
Error: An attempt was made to load an assembly with an incorrect format: c:\path\to\someassembly.dll. 
    - Could not load file or assembly 'file:///c:\path\to\someassembly.dll' 
or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. 

If you would like more help, please type "sgen /?". 

मुझे कमांड लाइन से SGEN चलने में एक ही त्रुटि मिलती है, लेकिन मुझे पता नहीं चल सकता कि समस्या क्या है। कोई विचार?

उत्तर

2

हाँ, वहाँ के लिए एक ही उपलब्ध sgen.exe के दो संस्करणों, कर रहे हैं सीएलआर v2 असेंबली, दूसरा सीएलआर v4 विधानसभाओं के लिए। यह bombs है क्योंकि आप v4 असेंबली को संसाधित करने के लिए sgen.exe के v2 संस्करण से पूछते हैं।

जांचें कि आपकी परियोजना sgen.exe कैसे शुरू होती है। यदि यह पोस्ट-बिल्ड इवेंट है तो आपको sgen.exe के पथ को ट्विक करना होगा। मुझे एक मैक्रो या पर्यावरण चर नहीं दिखता है ताकि इसे सही ढंग से प्राप्त किया जा सके, एक निरीक्षण का थोड़ा सा।

8

SGEN से उत्पादन की है कि दूसरी पंक्ति की तरह लगता है महत्वपूर्ण है:

[Microsoft (R) .NET Framework, Version 2.0.50727.3038] 

मैं जो C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\sgen.exe पर काम करने लगता है SGEN का एक और संस्करण पाया। यह इस आउटपुट जब आप इसे चलाते:

[Microsoft (R) .NET Framework, Version 4.0.30319.1] 

मुझे यकीन है कि क्यों दोनों विंडोज 7 SDK में शामिल कर रहे हैं नहीं कर रहा हूँ ...