[英]create c# .dll compatible on both .net3.5 and .net4.0
我必须创建一个用 c# 编写的 dll。 该 dll 必须在机器上的两种不同类型上使用: -MachineA 已安装 .net35,但未安装 .net40 -MachineB 已安装 bot .net40,但未安装 .net35 目前没有选项在 MachineB 上安装 .net35,或在 MachineA 上安装 .net40。
我假设在 .net35 上创建一个 dll 将能够在 MachineB 上运行。 但是当我尝试调用 dll 的任何函数时,我收到一条错误消息,指出应用程序需要安装 .net35
所以问题是:是否有可能以在 MachineA 和 MachineB 上都兼容的方式创建 dll?
您可以通过在app.config
文件中添加多个supportedRuntime
值,将您的应用程序配置为在两个版本的 .NET(3.5 和 4.0)上运行
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
.NET Framework 4 及更高版本使用v4.0
运行时,.NET Framework 2.0、3.0 和 3.5 使用v2.0.50727
运行时。 此外,由于您的目标是旧的 .NET 3.5,因此启用旧的运行时激活策略useLegacyV2RuntimeActivationPolicy="true"
。
如果仅安装了此版本,则上述配置在 .NET 3.5 上运行您的代码。 如果安装了两个版本,它将在 .NET 4.x 上运行
您还可以查看这篇 MSDN 文章以了解更多详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.