繁体   English   中英

维护subversion解决方案的参考

[英]Maintaining references for solutions across subversion

我有一个解决方案,其中包含三个项目。 如果需要,这些项目都打算独立使用。 为了清楚地说明,我的项目如下:

  • “常规”类库项目,包含许多基本抽象类,如“Person”和一些Helper类。

  • “EmployeeManagement”类库项目,包含Employee:Person,EmployeeAddressList以及与管理员工相关的其他类。

  • 一个Web应用程序项目,它引用上述两个项目作为表示层/ Web表单。 即“editemployees.aspx.cs”,用于编辑现有员工信息等。


一切都很好,但是当我进行很多更改然后将所有三个项目推送到它们各自的三个存储库时,我的同事将从三个存储库中提取所有更改,然后打开整体解决方案。 一切都完好无损,但Web应用程序项目不再识别对General和EmployeeManagement的引用。 它们在“引用”文件夹中列出,但是代码本身无法编译,并发出各种带下划线的红色疯狂标记。 一种简单的解决方案是将它们从“引用”文件夹中删除,然后再次添加它们,就像魔术一样,一切都可以再次使用。

我的问题是:

  1. 为什么会这样?
  2. 我究竟做错了什么? (也许我推送到存储库的顺序或他拉动的顺序是关闭的?)
  3. 我该怎么做才能防止这种情况发生?

谢谢 :)

您的目录布局很可能与同事的目录布局不同。

您的项目看起来很小,可以证明分散在三个存储库中是合理的。 您最好专注于软件的体系结构,而不是过度使用过度设计的项目基础架构。

顺便说一句。 在svn中,我们提交并更新:-)

在不知道更多的情况下,我会查看您各自的.sln和.csproj或.vbproj文件,并确保每次提交更改时都不会覆盖包含项目的相对路径。

以下是解决方案/项目文件中包含的项目引用的示例:

的.sln

Project("{6f8415d8-82c0-4e47-8ddd-f3962bb3b518}") = "QuickJoe.Awesome", "QuickJoe.Awesome\QuickJoe.Awesome.csproj", "{e623a940-79ba-4762-af02-84993a2b37b7}"
EndProject
Project("{6f8415d8-82c0-4e47-8ddd-f3962bb3b518}") = "QuickJoe", "..\qjs\QuickJoe\QuickJoe.csproj", "{6754372e-b253-41be-9b83-23cf8bea786f}"
EndProject

的.csproj / .vbproj

<ItemGroup>
  <ProjectReference Include="..\..\qjs\QuickJoe\QuickJoe.csproj">
    <Project>{6754372e-b253-41be-9b83-23cf8bea786f}</Project>
    <Name>QuickJoe</Name>
  </ProjectReference>
</ItemGroup>

另一个不错的提示(如果您尚未这样做的话)是专门排除.user和.suo文件。 在某些情况下,将它们加载到其他工作站上时会产生积极的危害。

如果您使用的是Visual Studio,请考虑将解决方案放在文件夹树的顶部,以及下面的项目。 然后Visual Studio应该通过$(SolutionDir)引用项目,它是其内部变量之一。 如果做不到这一点,手动编辑解决方案并使文件夹/项目位置相对于$(SolutionDir) ,然后无论在何处检出,所有内容都应该是可移植的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM