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

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

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

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


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

我的问题是:

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

谢谢 :)

===============>>#1 票数:2 已采纳

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

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

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

===============>>#2 票数:1

在不知道更多的情况下,我会查看您各自的.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文件。 在某些情况下,将它们加载到其他工作站上时会产生积极的危害。

===============>>#3 票数:0

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

  ask by CptSupermrkt translate from so

未解决问题?本站智能推荐:

4回复

在Visual Studio解决方案中更新第三方组件dll

对于很多使用某些第三方组件(Infragistics)的项目,我有一个很大的解决方案。 现在,我与旧组件并行安装了该组件的新版本(6 => 7)。 现在,我希望引用的第三方dll的所有“点”都指向新安装的版本,但不确定是否应该手动打开每个项目,删除旧项目并重新设置对新路径的引用
2回复

如何在同一解决方案中添加对另一个项目的引用?

我的解决方案中有两个项目。 第一个项目是网站(实际上是Web服务),其他项目是控制台应用程序。 是否可以在第二个项目中向第一个项目添加引用? 在网站项目下,我想在控制台应用程序中使用一些代码。 我可以将网站的引用添加到第二个控制台项目,但是我不需要也不需要这样做。 第二个项目仅
3回复

.NET在多个解决方案中查找无效代码

我们有一个大约15个解决方案的产品,每个项目都有多个。 问题很简单:哪种工具将使我们能够在整个代码库中搜索无效代码? 在单个解决方案中进行搜索就足够容易了(该解决方案在SO上有很多答案)。 但是,如何确定解决方案AlphaSol的项目AlphaProj中的“公共无效Foo()”
2回复

从解决方案sln的所有csproj项目中读取引用列表(以编程方式)

我有解决方案sln,它有许多csproj项目。 任何人都知道一种方法以编程方式读取sln文件的VS2008中所有csproj项目的引用列表?
2回复

Visual Studio中的版本控制和解决方案结构

我的系统具有三个应用程序(一个Windows应用程序和两个Web应用程序)。 这些应用程序均共享两个程序集。 因此,我总共有5个项目。 过去,我为每个项目都有单独的解决方案。 这使我可以在源代码管理中分别对每个程序集进行版本控制。 但是,这有很大的开销,因为我必须分别打开每个解决方案,
1回复

为VS2008解决方案创建VS2010解决方案文件

是否可以为现有的VS2008解决方案创建VS2010解决方案文件? 所以我会同时拥有VS2008和VS2010解决方案文件,并且能够在没有项目转换器运行的情况下从VS2008或VS2010打开解决方案吗? 我可以复制2008 .sln,将其重命名为MyProject2010.sln并替换
1回复

这些其他解决方案配置从何而来?

在检查配置管理器时,我注意到之前从未见过的三个其他解决方案配置: 调试器 ReleaseSnk 代码分析 有人知道这些来自何处吗?
1回复

调试VS2010中的多个解决方案

我有两个独立的解决方案,SolutionA和SolutionB。 SolutionA引用SolutionB的输出,如下所示: SolutionA ProjectA1 References: ProjectB1.dll, ProjectB2.dll Projec
1回复

未解决的项目引用仅在解决方案的首次加载时

简短说明:第一次加载解决方案会将外部项目引用标记为无效,重新加载解决方案可以解决问题。 详细说明: 我们的系统中有大量的C#项目,几种仅包含少量项目的不同解决方案。 这些项目通过项目引用而不是直接引用dll相互引用。 引用的项目不是解决方案的一部分。 使用这些解决方案时,我
1回复

使用vs2012打开vs2010解决方案而不改变sln

我正在尝试使用Visual Studio 2012.我可以使用VS2012打开VS2010解决方案,这很好并且可以预期,但我想知道是否可以在不更改它们的情况下打开VS2010解决方案。 我想要这个,因为我们使用源控制系统,我们团队的一些成员仍然使用VS2010,所以我不希望我的解决方案文件发生