C# · 12月 24, 2021

c# – 将.NET项目从4.5转换为4.0的最简单方法?

我有一个我在4.5中构建的.NET应用程序,它引用了一堆用4.5构建的库,它们本身引用了4.5等.我正在尝试分发应用程序的用户组正在使用运行可执行文件的问题,因为它们已安装4.0;特别是,他们遇到了MissingMethodException: Method not found: ‘System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)’.

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

解决方法 如果您依赖.Net 4.5 DLL,那么如果您想成功降级项目,还需要获得.Net 4.0版本. .Net项目只能将.Net DLL引用到与引用程序集相同的.Net版本.

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

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