Visual Studio警告将项目存储在不是解决方案子文件夹的目录中:
您尝试添加到源代码管理的项目可能会导致 其他源控制用户难以打开此解决方案或 获得它的新版本。要避免此问题,请添加项目 从另一个源控制的绑定根下面的位置 解决方案中的项目。
共享项目如何适应这种约束?例如。鉴于
$\BranchName\Project1Name\Project1.sln
$\BranchName\Project2Name\Project2.sln
我可以在哪里放
MyCompany.DataLayer.proj
?
答案 0 :(得分:1)
在一些research之后,该选项可归结为基本上两个选项:
- 从共享位置引用代码
- 分享共享代码
醇>
共享位置:
使用此方法,您可以从共享位置映射源,例如 另一个团队项目进入开发计算机上的工作区。 这将创建一个统一来自的共享源的配置 与您的开发计算机上的项目代码共享位置。
这种方法的优点是对共享的任何更改 每次检索到最新版本时都会获取源 源于您的工作区。例如,考虑一个名为的团队项目 包含共享源的Common。从中引用代码 在此位置,您将两个团队项目映射到公共路径位置 你的开发计算机。
分支
使用此方法,您可以从公共团队分支共享代码 投射到您的团队项目中。这也创建了一个配置 统一来自共享位置和项目的源。
与此方法的不同之处在于共享源更改 拾取作为分支之间合并过程的一部分。这使得 决定更多地获取共享源中的更改 明确。您决定何时执行合并以获取最新信息 变化。
Further Info for Winforms.
Further Info for ASP.NET.
对于共享位置,不能不应该使用项目引用,这意味着您通过文件引用会丢失此类引用的advantages。我还没有尝试过,可以分支到$\BranchName\Project1Name\Project1.sln
的子文件夹位置,并且能够安全地创建项目引用。
在MSDN上稍微掩饰的第三个选项是将所有sln
文件放入分支的根文件夹中。然后将项目存储在根目录下的文件夹中。
显示此错误消息,让人们知道解决方案文件使用可能导致问题的相对路径 E.G。
<ProjectReference Include="..\..\Applications\DL\MyDL.csproj">
例如,如果其他开发人员要将解决方案映射到其硬盘上的其他物理位置:
"..\..\..\Applications\DL\MyDL.csproj"
...然后构建将在他们的机器上被破坏。就个人而言,我说更容易实现每个开发人员映射到同一物理位置的最佳实践:
C:\TFS
并且这些东西都不应该引起关注。