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

问题描述:

我有一个.Net 2.0项目,依赖于许多第三方.Net dll(所有这些项目显然都以.Net 2.0为目标)。将.Net 2.0项目升级到.Net 4.0

如果我将我的项目迁移到VS2010并将.Net 4.0框架作为目标,我的应用程序是否仍会构建?或者它会抱怨.Net 2.0 dll的引用,我将不得不找到这些第三方dll的.Net 4.0版本?

+0

亚伦的回答似乎是正确的。 – 2010-10-12 19:10:03

+0

经过一些测试后,我发现:ASP.Net和CmdLine应用程序都在重定向到.Net 4.0之后工作。配置文件不需要做任何修改。另外,我用来生成PDF文件的第三方dll(使用.Net 2.0构建)也像以往的.net 3.5一样工作。如果我发现任何疑难问题,将更新 – 2010-10-12 19:11:51

是的,它会工作。确保在执行应用程序的机器上安装了.NET 2和4 FW。

+0

我的机器上安装了.net 2和.net 4框架。但是,我收到错误“无法加载文件或程序集”Microsoft.Practices.EnterpriseLibrary.Data,Version = 3.1.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。所在程序集的清单定义与(来自HRESULT的异常:0x80131040)“ – 2010-10-12 18:24:10

+0

@Rajah查找了Microsoft.Practices.EnterpriseLibrary.Data,它表示它适用于2.0和3.0,但对于特定的事情需要3.0 ...您是否还有3个? – 2010-10-12 18:51:15

+0

它看起来像VS 2010,自动更新dll ref到V5(它也安装在我的机器上)。一旦我删除它并阅读EntLib的3.0版,它就开始工作,没有问题。 – 2010-10-12 19:08:00

如果您需要使用旧的组件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文件让我跑在混合模式下的组件。