有没有人知道是否有一个Visual Studio 2008插件可以以非破坏性的方式打开VS2005解决方案?
我在想的是转换后的项目文件保存在内存中,而不是替换磁盘上的原始文件,默认会将.Net framework 2.0作为目标?
当前行为需要一个复杂的转换过程,该过程会破坏原始解决方案文件,最终会导致针对较新框架的项目。我想要一些允许仍然使用2005的开发人员继续从事该项目的工作。
答案 0 :(得分:4)
我在开源项目中看到这种方式的方法是为每个版本的VS创建一个解决方案文件。由于项目文件(csproj,vbproj等)在不同版本之间兼容,因此您不需要单独的版本。
答案 1 :(得分:2)
在2008年打开您的2005项目并允许它升级您的解决方案/项目。您可能会收到一个对话框,要求您更新CLR版本,只需说不。
获得有效的2008解决方案后,将* .sln文件复制到另一个名称(我调用我的副本* .2005.sln),在记事本或您喜欢的文本编辑器中打开复制的* .sln文件。在第2行找到“格式版本10.0”,并更改为“格式版本9.0”。保存文件。
就是这样,您升级的解决方案文件在VS 2008中运行,您复制和更改的文件在VS 2005中可以使用。
如果您有Web应用程序项目,还有一个额外的步骤。 在Web应用程序的vbproj或csproj文件中,找到以下行:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="" />
并用这两个代替那一行:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
这两行将根据所使用的VS版本有条件地选择正确的MSBuild路径。