.net - 如何在一个应用程序中支持.NET 2.0和.NET 4.0?

标签 .net clr

这是一个有趣的。我有一个针对.NET 2.0构建的小型可执行文件,以确保它可以在多种平台上运行。它是一个汇编程序,并且仅引用System。* namespace 。

当我在安装了.NET 2.0的操作系统上运行它时,它运行良好。由于.NET 4.0引入了新的运行时,因此它将无法在仅安装.NET 4.0的操作系统上运行。结果,我将受支持的运行时信息添加到了app.config文件中,如here所述。我添加了两个受支持的运行时:

<supportedRuntime version="2.0.50727" />
<supportedRuntime version="4.0" />

现在,当我在安装了.NET 2.0的系统上运行该应用程序时,它无法运行:

定义支持的运行时的顺序没有什么区别,除了错误消息中所请求版本的顺序更改(以反射(reflect)对app.config的更改)(因此CLR显然正确地获取了该信息)之外。我已经安装了.NET 2.0,并且声称我需要安装.NET 2.0!我试过修复.NET 2.0的安装,但是没有运气。我已经在第二台计算机上重现了此行为。

是什么导致此操作失败?

最佳答案

我相信您可能只是错过了v:

<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />

关于.net - 如何在一个应用程序中支持.NET 2.0和.NET 4.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7321442/

相关文章:

c# - 接口(interface)上的私有(private)成员

c# - List、SortedList、Dictionary 按键存储对象并序列化?

.net - 如何将大文件从桌面传输到服务器 (.NET)

c# - 使用 'typeof'和 'is'时,c#如何共享引用类型的泛型实现?

c++ - 如何使托管代码中的 c++ dll 中的其他 dll 可以使用某个方法?

c++ - 对 Microsoft C++ 产品和术语感到困惑

c# - 如何使用 .NET SqlDependency 处理连接丢失

c# - 如何调用所有事件处理程序订阅者并获得他们的结果?

.net - .NET 中数组的 header 是什么

c# - 事件调用模式和 CLR AMD64 JIT 优化