C# 用TFS 2013替换TFSBuild.proj文件
我正在尝试将我们的TFS服务器升级到2013年。我们目前正在使用2012,但我们也一直坚持使用dear life的升级模板。对于2013,我们希望转到默认模板,并尽可能少地修改它 当你认为默认模板要求你添加你想建立的每个单独的.cPROJ或.SLN文件时,问题就出现了。tfsbuild.proj文件的好处在于,您不仅可以在服务器上构建,还可以在命令行上签出整个分支并在本地构建所有内容,只需将tfsbuild.proj文件传递给msbuild.exe即可。此外,开发人员可以拥有tfsbuild.proj文件,而无需具有更改生成定义的写入权限 TFS 2013中TFSBuild.proj文件的替换内容是什么 我的要求是: 清洁构建配置。 可以轻松地在本地构建所有内容C# 用TFS 2013替换TFSBuild.proj文件,c#,C#,我正在尝试将我们的TFS服务器升级到2013年。我们目前正在使用2012,但我们也一直坚持使用dear life的升级模板。对于2013,我们希望转到默认模板,并尽可能少地修改它 当你认为默认模板要求你添加你想建立的每个单独的.cPROJ或.SLN文件时,问题就出现了。tfsbuild.proj文件的好处在于,您不仅可以在服务器上构建,还可以在命令行上签出整个分支并在本地构建所有内容,只需将tfsbuild.proj文件传递给msbuild.exe即可。此外,开发人员可以拥有tfsbuild.p
TFS 2013中此问题的解决方案是什么?创建TFS生成定义使用的包装器MSBuild.proj。我们将此技术用于NuGet包还原,但它同样可以用于将多个解决方案文件链接在一起 对于本地生成,您可以使用带有.proj包装的msbuild作为目标(我只是直接生成.sln文件,因为只有1个) .proj文件(不建议您使用这个确切的.proj文件,只是一个示例)
$(MSBuildThisFileDirectory)bin\
释放
$(MSBuildThisFileDirectory)
$(MSBuildThisFileDirectory)工具\
OutDir=$(OutDir);配置=$(配置)
谢谢。我不确定这是唯一的方法,还是MS所说的“正确”方法,或者是什么。不幸的是,虽然MS改进了TFS文档,但似乎TSFSubj.PRJ文档在MSDN上没有达到标准。
<PropertyGroup>
<OutDir Condition=" '$(OutDir)'=='' ">$(MSBuildThisFileDirectory)bin\</OutDir>
<Configuration Condition=" '$(Configuration)'=='' ">Release</Configuration>
<SourceHome Condition=" '$(SourceHome)'=='' ">$(MSBuildThisFileDirectory)</SourceHome>
<ToolsHome Condition=" '$(ToolsHome)'=='' ">$(MSBuildThisFileDirectory)tools\</ToolsHome>
</PropertyGroup>
<ItemGroup>
<Solution Include="$(SourceHome)*.sln">
<AdditionalProperties>OutDir=$(OutDir);Configuration=$(Configuration)</AdditionalProperties>
</Solution>
</ItemGroup>
<Target Name="RestorePackages">
<Exec Command=""$(ToolsHome)NuGet\NuGet.exe" restore "%(Solution.Identity)"" />
</Target>
<Target Name="Clean">
<MSBuild Targets="Clean"
Projects="@(Solution)" />
</Target>
<Target Name="Build" DependsOnTargets="RestorePackages">
<MSBuild Targets="Build"
Projects="@(Solution)" />
</Target>
<Target Name="Rebuild" DependsOnTargets="RestorePackages">
<MSBuild Targets="Rebuild"
Projects="@(Solution)" />
</Target>