【问题标题】:easiest way to convert .NET project from 4.5 to 4.0?将 .NET 项目从 4.5 转换为 4.0 的最简单方法?
【发布时间】:2013-07-19 14:56:24
【问题描述】:

我有一个在 4.5 中构建的 .NET 应用程序,它引用了在 4.5 中构建的一堆库,这些库本身也引用了 4.5 等。我正在尝试分发应用程序的用户组to 在运行可执行文件时遇到问题,因为他们安装了 4.0;特别是,他们得到了 MissingMethodException:

Method not found: 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)'.

因为我们可能无法让每个用户升级到 4.5(因为他们都没有计算机上的管理员权限,这需要为每个用户单独提出升级请求),我正在寻找一种简单的方法来重建项目为 4.0。这似乎要求我在 4.0 中重建每个库及其引用的库;有没有比逐个浏览每个库并构建 4.0 版本更简单的方法?我在想可能是“在目标框架中重建所有引用的库”的一键式选项或类似的东西。

【问题讨论】:

  • 不,您必须更改每个单独项目的框架目标。我想你可以编写一个使用 XDocument 来更改项目文件的小程序,我怀疑它会更快。请确保您的客户知道您已经测试过并且可以支持的版本。这与您可以构建的版本无关。

标签: c# .net


【解决方案1】:

如果您依赖于 .Net 4.5 DLL,那么如果您想成功降级您的项目,您还需要获得这些 .Net 4.0 版本。 .Net 项目只能引用与引用程序集相同版本的 .Net DLL。

最简单的方法是使用NuGet 之类的东西来管理您的依赖项。请注意,当您在 VS 中更改项目的目标框架版本时,您需要使用 NuGet 卸载并重新安装依赖项,因为当您更改目标框架版本时,NuGet 不会自动为您执行此操作。

当然,如果所有依赖项都是您自己的代码,并且您没有通过 NuGet 等依赖项管理系统发布它,那么您还需要将所有其他代码降级到 .Net 4.0

【讨论】:

    【解决方案2】:

    当我使用 Visual Studio 时,我右键单击项目,更改框架,修复引用并重新编译。通常是直截了当的。

    【讨论】:

    • 如果项目不依赖于其他 4.5 DLL,这将起作用。当我重新编译时,每个引用都会给我这个警告:The primary reference "NameOfReferencedDLL, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". 并且引用中的所有类都不可用。
    • 所以,你必须先对依赖项做同样的事情。
    【解决方案3】:

    请查看this MSDN page 以正确地将您的项目切换到较低的目标框架而不会出现问题!关于版本的内容有点过时了,但过程与描述的相同!

    【讨论】:

    • 这行不通,因为我引用了其他 4.5 项目,请参阅上面对 Andrew 的回复。
    • 您必须重新构建对 4.0 框架的引用,所以...或将项目保留在 4.5 框架下。在这种情况下,您需要找到一种在所有引用和项目中保持框架一致性的方法。早期的框架可能很好(例如项目是 4.5 和引用 3.5),但反之则不然。
    【解决方案4】:

    这是基于我的经验。我最初在.net framework 4.5 中创建了一个应用程序,但我想在.net framework 4.0 中转换它。我创建了最初创建 4.0 的新项目,然后我复制并粘贴了我以前的应用程序的所有表单和控件,它可以工作。框架 4.5 使用 Aero2 而 4.0 是 Aero...祝你好运:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 2022-08-15
      相关资源
      最近更新 更多