Sim*_*onC 15 c# visual-studio-2010 visual-studio-2008 visual-studio
我正在尝试找到一种方法,可以在同一组项目中使用多个版本的Visual Studio.我们的大多数团队使用2008年,但我正在尝试2010年.所有项目都是C#.
据我了解,Visual Studio 2010坚持升级所有项目,因此不可能将所有解决方案/项目文件保留为2008版本.我真的不想分支整个源代码树,所以我想找到一种方法让多个版本的项目文件共存.目前,我已经复制了所有.sln和.csproj文件,所以我有:
# 2008 versions
SolutionName.sln
ProjectA.csproj
ProjectB.csproj
# 2010 versions
SolutionName.vs2010.sln
ProjectA.vs2010.csproj
ProjectB.vs2010.csproj
Run Code Online (Sandbox Code Playgroud)
麻烦的是,尽管2010版本的文件都具有与2008年版本相同的程序集名称,但Visual Studio(2010)认为这些项目都是如此ProjectName.vs2010.在VS中重命名项目失败,并显示一条消息,指出已存在同名文件.
我不认为将2010版本放在子文件夹中会是一个解决方案,因为它会搞砸文件中的任何相对路径.
所以:
UPDATE
我最初声称Visual Studio无法找到项目引用是错误的,因为它使用的是文件名.我遇到的具体问题是,在我的构建文件中,项目引用的形式如下:
<ProjectReference Include="..\..\path\to\ProjectName.vs2010.csproj">
<Project>{48354450-2462-449D-8B32-EFECA39F6CD7}</Project>
<Name>ProjectName</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
我复制的项目文件显然有不同的ID(或<Project>元素中的任何内容.只需从构建文件中删除元素就可以解决该特定问题:
<ProjectReference Include="..\..\path\to\ProjectName.vs2010.csproj">
<Name>ProjectName</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
话虽如此,复制项目和解决方案文件的整个过程实际上是比它的价值更多的努力,所以我不推荐这种方法.
您经常修改项目吗?
您只需使用升级版本的 csproj 和 sln 文件即可。通过这种方式,您可以提交/签入对源代码文件的所有更改,但项目文件除外,项目文件通常不会被修改(添加新文件除外)。
然后,如果您想提交项目文件中的更改,您可以使用该文件的中间本地 VS2008 版本,并使用您最喜欢的差异/合并工具将其排列,然后再最终提交此 VS2008 版本。这将是某种当地分支机构。
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |