2010-02-08 78 views
2

下列情况下更换项目引用:团队建设 - 以DLL的

  • 2团队项目
  • 队Dvelop项目A加入团队项目B的项目引用到自己的项目。

为了加速构建我想用直接引用dll的方式替换项目引用。

我的想法:

<ProjectReference Condition="'$(IsDesktopBuild)' == 'true'" Include="[Project Reference] >... 

在TFSBuild.proj

<AdditionalReferencePath Include="[buildoutputOfTeamProjectB]" /> 

OR

禁用SolutionToBuild和使用的csproj文件:

在团队项目A的的csproj

直。

感谢您的建议。

回答

0

我会建议每个项目都有一个依赖文件夹,其中包含每个项目所需的相应dll。当建立一个依赖的项目时,它将由您自动更新依赖项文件夹中的dll或不通过您的构建过程(巡航控制/ nant/msbuild?)。不过,我也会考虑部署依赖于dll的版本,以防万一你破坏了该dll的相关项目用法。它会吸引某人更新他们的项目(取决于项目),启动一个构建,将他们的构建输出部署到依赖项目中),以打破依赖于他们代码库的项目。这听起来像是一种管理依赖关系的脆弱方式。

+0

嗨安德鲁,我们正在使用MSBuild/TFSBuild。开发人员希望使用项目引用来更容易地更改lib项目,而无需切换2个解决方案。但是这会导致TFS过度的构建过程。因此,我需要一种方法来从csproj文件中删除项目引用,并将它们替换为dll引用。 – mawl 2010-02-08 16:24:56

+0

我们已经有一个共享buildoutput的文件夹,但是当我使用IsDesktopBuild Condition删除projectreferences时,似乎无法配置使用它们的csproj。 – mawl 2010-02-08 16:27:24

+0

我们目前正在做的是有专门的解决方案。在你的情况下,你可能有一个ProjectA解决方案,一个ProjectB ...和一个包含ProjectA和ProjectB的解决方案。拥有多个解决方案不应该是一个问题。您的本地构建脚本可能会根据环境来生成您的项目/解决方案文件,而不是在您的项目文件中使用较酷的逻辑。了解构建的运行环境比将嵌入逻辑嵌入项目文件更简单! – 2010-02-08 21:50:11