我遇到了一個奇怪的問題,與我託管的C++程序集。儘管我將C#項目和託管C++(DLL)項目設置爲以.NET 3.5爲目標,但在編譯託管程序集時,其「運行時版本」爲2.0。針對特定.NET版本編譯託管C++程序集(VS2008)
我想在.NET 3.5項目和.NET 4.0版本的CSScript中使用相同的程序集,並且CSScript拒絕使用.NET 2.0程序集運行(「運行時例外:混合模式程序集是針對運行時版本爲'v2.0.50727',無法在4.0運行時加載,無需其他配置信息。「)。
我設法本地化問題以下(在VS 2008中完成的所有工作):
- 我創建了一個C#項目目標.NET 3.5。
- 我在同一個解決方案中創建一個空的C++項目。
- 向C++項目添加一個空的.cpp文件。
- 更改C++項目屬性:配置類型=動態庫(.dll),通用語言運行時支持=通用語言運行時支持(/ clr),並確保將通用屬性的「目標框架」設置爲3.5
- 編譯C++項目並將其添加爲對C#項目的引用。
當您查看C#項目中引用的屬性時,您會看到「運行時版本」爲v2.0.50727。我的問題是,到底是什麼?
爲什麼運行時版本2.0?我將所有內容都設置爲3.5 ...如何強制託管的C++項目針對.NET 3.5進行編譯?
感謝, 馬立克
在.NET 4.0項目中引用.NET 2.0混合模式程序集時需要[什麼'額外配置'?](http://stackoverflow.com/questions/2455654/what-additional-configuration-是必要的參考a-net-2-0-mixed-mode-a) –