将一个 .Net 2.0 项目升级到 .Net 4.0

5

我有一个 .Net 2.0 项目,依赖于许多第三方 .Net dll(所有这些dll显然都针对 .Net 2.0)。

如果我将我的项目迁移到 VS2010 并针对 .Net 4.0 框架进行目标设置,那么我的应用程序仍然能够构建吗?还是会抱怨 .Net 2.0 的 dll 引用,我必须找到这些第三方 dll 的 .Net 4.0 版本?


Aaron的答案似乎是正确的。 - Raj Rao
经过一些测试,我发现了以下结果:ASP.Net和CmdLine应用程序在重新定位到.Net 4.0后都能正常工作。不需要对配置文件进行任何更改。此外,我使用的生成PDF文件的第三方dll(使用.Net 2.0构建)也像在.net 3.5下一样正常工作。如果我发现任何问题,我会及时更新。 - Raj Rao
2个回答

3

是的,它能够起作用。请确保您在执行应用程序的计算机上安装了.NET 2和4 FW。


我在我的计算机上同时安装了 .net 2 和 .net 4 框架。但是我遇到了以下错误:“无法加载文件或程序集'Microsoft.Practices.EnterpriseLibrary.Data,Version=3.1.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'或其某个依赖项。所找到的程序集清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)”。 - Raj Rao
@Rajah查了一下Microsoft.Practices.EnterpriseLibrary.Data,发现它适用于2.0和3.0版本,但某些特定功能需要3.0版本...你那里也有3.0版本吗? - Aaron McIver
它看起来像是VS 2010,自动更新了dll引用到V5(这也安装在我的机器上)。一旦我将其删除并重新添加EntLib的v3.0版本,它就开始正常工作了,没有任何问题。 - Raj Rao

2
如果你需要在4.0版本中使用旧的程序集(混合模式),你可能需要在<yourappname>.config中添加以下内容:
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>

在我尝试将一些旧的1.1程序集加载到我的Ironpython程序(.NET 4.0)中时,我不得不这样做,并收到以下错误消息:

"Mixed mode assembly is built against version 'v1.1.4322' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information."

将这三行添加到我的ipyw.exe.config文件中,使我能够以混合模式运行这些程序集。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接