簡體   English   中英

創建在 .net3.5 和 .net4.0 上兼容的 c# .dll

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM