1

我正在开发一个最初使用 VS 2003 创建的 dotnet C# Web 应用程序。我的目标是在不更改任何功能的情况下将此应用程序升级到 Dotnet 4.0。该解决方案有 9 个项目(1 个 Web + 8 个库项目)。Web 项目引用 DLL 中的 8 个库。首先,我在 VS2010 中创建了一个新项目,并从现有源代码中添加了所有项目文件。每次我将项目文件添加到我的解决方案时,都会提示我使用转换向导,并且我成功完成了转换向导,现在解决方案工作正常。转换后,我注意到除了“Web”项目之外,其他项目都转换为 Dotnet 2.0 而不是 4.0。如果我使用 VS2010 在本地运行它,我的应用程序运行没有错误。我的问题是

  1. 为什么 Class libaray 项目没有升级到 4.0?目前,Web 项目显示为 Dotnet 4.0,Libaray 项目显示为 Dotnet 2.0。
  2. 我可以使用 4.0 的 Dotnet 运行时将应用程序部署到 IIS 7.0 吗?如果我的应用程序使用 Dotnet 4.0 运行时版本,在 2.0 版中创建的 Dll 是否可以工作?

请帮忙...

4

2 回答 2

4

如果您现在正在迁移,为什么不直接迁移到 Visual Studio 2012 而不是 2010?

无论如何,您可以做的是打开每个项目中的项目属性,并将目标框架更改为 .NET 框架 4.0。

然后,如果您遇到任何编译错误,您可能可以轻松地单独解决它。如果您的项目不太大,这应该相对容易。

至于你的具体问题:

  1. 自动转换只会更改解决方案/项目的格式以与新版本的 Visual Studio 兼容。它不应该改变目标框架,但你可以自己改变它。

  2. 是的,可以从面向 .NET 4.0 的程序集中加载和使用面向 .NET 2.0 的程序集。

于 2013-04-12T21:47:12.657 回答
1

1) 升级解决方案/项目文件只会升级它的格式,以便您可以在 VS 2010 中打开它。它通常会将目标 .NET 设置保留为以前的值。这是两个不同的东西。VS 2010 的美妙之处在于它让您可以针对您想要的任何版本的 .NET,因此您不再需要安装多个版本的 VS 来支持不同的 .NET 版本。它没有更改目标 .NET 版本,因为它由您决定。您可以在项目设置下更改它并重新编译您的库项目以重新生成 DLL

2) 您将需要一个用于 .NET 4 的应用程序池。.NET 向后兼容,因为 .NET 2.0 应用程序可以在安装了 .net 4 的机器上运行。但是,2.0 应用程序的应用程序池必须与 4.0 应用程序分开。因此,只需将应用程序放在正确的应用程序池中即可。

于 2013-04-12T21:45:38.570 回答