将.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版本?
是的,它会工作。确保在执行应用程序的机器上安装了.NET 2和4 FW。
我的机器上安装了.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
@Rajah查找了Microsoft.Practices.EnterpriseLibrary.Data,它表示它适用于2.0和3.0,但对于特定的事情需要3.0 ...您是否还有3个? – 2010-10-12 18:51:15
它看起来像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
文件让我跑在混合模式下的组件。
亚伦的回答似乎是正确的。 – 2010-10-12 19:10:03
经过一些测试后,我发现:ASP.Net和CmdLine应用程序都在重定向到.Net 4.0之后工作。配置文件不需要做任何修改。另外,我用来生成PDF文件的第三方dll(使用.Net 2.0构建)也像以往的.net 3.5一样工作。如果我发现任何疑难问题,将更新 – 2010-10-12 19:11:51