2010-09-03 14 views
5

बनाने के लिए हमारे पास एक एएसपी.Net वेब एप्लिकेशन विजुअल स्टूडियो 2010 में चल रहा है जो नेट 3.5 को लक्षित कर रहा है। यह टीएफएस 2010 द्वारा बनाया जा रहा है। इस वेब एप्लिकेशन में कुछ वेब संदर्भ हैं, इसलिए निर्माण संबंधित XmlSerializers DLL बनाता है। हालांकि, यह डीएलएल एक नेट 4.0 असेंबली है।टीएफएस 2010 .Net 4.0 XmlSerializers DLL .NET 3.5 अनुप्रयोग

Could not load file or assembly 'BLAH_BLAH_WEB_APPLICATION_NAME.XmlSerializers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

हम एक MSBuild .proj फ़ाइल का उपयोग कर रहे हैं कि TFS 2008 के तहत काम कर रहा था ("अपग्रेड खाका" बिल्ड में उपयोग करते हुए:

जब मैं निर्माण से इस वेब अनुप्रयोग चलाने के लिए, मैं त्रुटि मिलती है परिभाषा)। मैंने this question और this one देखा, लेकिन वे एक विशिष्ट एसजीएन बिल्ड चरण का उपयोग करते हुए उल्लेख करते हैं। हम नहीँ हे। इसके अतिरिक्त, प्रस्तावित समाधान में 7.0 ए एसजेन के पथ को हार्ड-कोडिंग करना शामिल है, जो सिर्फ ... बदसूरत है।

क्या इस XmlSerializers DLL को .NET 3.5 असेंबली के रूप में संकलित करने के लिए TFS 2010 निर्माण को मजबूर करने का कोई तरीका है?

+0

क्या आपने सीरिएलाइज़र प्रोजेक्ट पर लक्ष्य ढांचे को 3.5 पर सेट किया था? परियोजना गुणों की जांच करें। – Robaticus

+0

मुझे यकीन नहीं है कि "धारावाहिक परियोजना" से आपका क्या मतलब है। वह परियोजना जो वेब संदर्भों का उपभोग करती है वह 3.5 को लक्षित कर रही है। क्या वेब संदर्भों के लिए कोई और सेटिंग है? –

उत्तर

4

रूट समस्या रजिस्ट्री में एक अवैध मान था। \ 4.0 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions तहत SDK35ToolsPath मूल्य था:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\[email protected])

हालांकि, बिल्ड सर्वर विंडोज SDK संस्करण 7.1 था। तो, मैं मूल्य को सही होने के लिए:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\[email protected])

फिर XmlSerializers DLL अब नेट 2.0 का उपयोग किया गया था।