我们的构建服务器已经使用了以下属性
OutputPath=c:\output;
OutputDir=c:\output;
OutDir=c:\output;
ReferencePath=c:\output;
AdditionalLibPaths=c:\output
这使得所有输出都转到公共文件夹,并且还允许解析该文件夹的引用。这很有效,因为
由于这在构建盒上运行良好,我想为我们的开发人员带来相同的体验。我希望我们的IDE构建行为方式相同。
换句话说,我希望我们的开发人员总是使用(构建解决方案,构建项目)的工作流程,就像我在构建框中描述的那样。
如果我要求团队为批处理文件创建一个VS.Net外部工具,只需在所选项目上调用具有所需属性的msbuild,我就可以轻松完成此操作。但理想情况下,他们不必改变他们的工作流程。
我想知道
由于
答案 0 :(得分:1)
您需要设置OutDir和ReferencePath,以便项目发送它们 输出到OutDir并让他们解析来自同一路径的引用。你可以 添加一个公共目标文件:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<OutDir>c:\output\</OutDir>
<ReferencePath>$(OutDir);$(ReferencePath)</ReferencePath>
</PropertyGroup>
</Project>
将它放在foo.targets文件中,然后将其导入到每个项目中。
答案 1 :(得分:0)
我们也在做同样的事情。编辑每个csproj文件。相当多的管道,但它的工作原理。
如果可能 - 尝试将组件数量减少到最小。
Csproj所需的编辑:
<ProjectReference Include="..\Core\Core.csproj">
<Project>{9C81B684-40CC-472A-804D-7C0F963315F5}</Project>
<Name>Core</Name>
</ProjectReference>
应该成为常规参考:
<Reference Include="Core, Version=1.0.0.0, Culture=neutral,
processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Deploy\$(Configuration)\Core.dll</HintPath>
</Reference>
虽然 - 部署文件夹的相对路径应该定义为属性。
但我不是建筑大师。只是分享一些信息。 :)