2013-04-12 92 views
1

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

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

请帮助...

+0

在以前版本的Visual Studio中转换项目不会更改目标框架版本。它只会将'.csproj'文件转换为当前VS studio版本的格式。 –

回答

4

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

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

然后,如果你得到任何编译错误,你可能很容易单独解决它。如果你的项目不是太大,这应该相对容易。

至于你具体的问题:

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

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

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应用程序分开。所以这只是将应用置于正确的应用程序池中的问题。

+0

好的感谢您的意见。我将尝试在IIS中托管我的应用程序Dotnet 4.0运行时。 – KKR