我们有一个拥有网站和类库的解决方案。我们也有开发人员在VS 2005和VS 2008中工作。问题是当用户添加文件/从类库中删除文件时,它不会被添加到用户的项目文件中使用其他版本的VS.此外,我必须设置我们的自动构建以使用一个项目文件。有没有办法解决这个问题,还是我们需要将每个人升级到2008年?
答案 0 :(得分:6)
在一个包含多个项目成员的团队中使用两个不同版本的Visual Studio绝对没有意义。我建议降级到Visual Studio 2005或升级到Visual Studio 2008.您可以在同一台机器上安装多个版本的Visual Studio,没有任何副作用。
答案 1 :(得分:5)
您需要将每个解决方案文件保存在同一个Visual Studio版本中。可以将您的产品分成几个解决方案。在这种情况下,您可能拥有包含2005项目的1 .sln文件和包含2008项目的1 .sln。
正如您所提到的,没有自动方式来保持2005和2008项目同步,因为当您将文件添加到其中一个项目时,另一个项目将没有新项目文件。同样,当您删除文件时。
答案 2 :(得分:0)
也许你应该降级到VS 2005 - 因为我现在正在使用VS08进行一个项目,并且偶尔引用的dll的路径混乱并且dll丢失 - 或者我们遇到同样的问题你只是描述了在更新后,从一个用户添加的文件不在下一个文件的项目文件中。
答案 3 :(得分:0)
我不确定“网站”(而不是“Web应用程序”)项目,但通常您不需要2005年和2008年的不同项目文件。您只需要单独的解决方案文件。
在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路径。