【发布时间】:2011-09-16 19:42:43
【问题描述】:
我的托管 C++ 程序集遇到了一个奇怪的问题。即使我将 C# 项目和托管 C++ (DLL) 项目设置为目标 .NET 3.5,但当我编译托管程序集时,它的“运行时版本”是 2.0。
我正在尝试在 .NET 3.5 项目和 .NET 4.0 版本的 CSScript 中使用相同的程序集,并且 CSScript 拒绝使用 .NET 2.0 程序集运行(“运行时异常:混合模式程序集是针对版本构建的运行时的‘v2.0.50727’,如果没有额外的配置信息,无法在 4.0 运行时加载。”)。
我设法将问题定位为以下问题(所有工作都在 VS 2008 中完成):
- 我创建了一个面向 .NET 3.5 的 C# 项目。
- 我在同一个解决方案中创建了一个空的 C++ 项目。
- 将一个空的 .cpp 文件添加到 C++ 项目中。
- 更改 C++ 项目属性:Configuration Type = Dynamic Library (.dll),Common Language Runtime support = Common Language Runtime Support (/clr),并确保 Common Properties 的“Targeted Framework”设置为 3.5李>
- 编译 C++ 项目并将其添加为对 C# 项目的引用。
当您查看 C# 项目中引用的属性时,您会看到“运行时版本”是 v2.0.50727。我的问题是,到底是什么?
为什么是运行时版本 2.0?我将所有内容都设置为 3.5 ...如何强制托管 C++ 项目针对 .NET 3.5 进行编译?
谢谢, 马立克
【问题讨论】:
标签: c# .net c++ visual-studio-2008 managed