gpt4 book ai didi

c# - 用 TFS 2013 替换 TFSBuild.proj 文件

转载 作者:行者123 更新时间:2023-11-30 12:26:31 30 4
gpt4 key购买 nike

我正在尝试将我们的 TFS 服务器升级到 2013。我们目前使用的是 2012,但我们也一直坚持使用升级模板。在 2013 年,我们希望使用默认模板并尽可能少地对其进行修改。

当您认为默认模板要求您添加您想要构建的每个单独的 .csproj 或 .sln 文件时,问题就来了。 tfsbuild.proj 文件的好处在于,您不仅可以在服务器上构建,还可以 checkout 整个分支并在命令行上本地构建所有内容,只需将 tfsbuild.proj 文件传递​​给 msbuild.exe .此外,开发人员可以拥有 tfsbuild.proj 文件,而无需更改构建定义的写入权限。

TFS 2013 中 TFSBuild.proj 文件的替代品是什么?

我的要求是:清理构建配置。可以在本地轻松构建所有内容。

TFS 2013 中这个问题的解决方案是什么?

最佳答案

创建 TFS 生成定义使用的包装器 MSBuild .proj。我们将此技术用于 NuGet 包还原,但它同样可以用于将多个解决方案文件链接在一起。

对于本地构建,您可以使用带有 .proj 包装器的 msbuild 作为目标(我只是直接构建 .sln 文件,因为只有 1 个)。

.proj 文件(不建议您使用这个确切的 .proj 文件,只是一个例子)

<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="&quot;$(ToolsHome)NuGet\NuGet.exe&quot; restore &quot;%(Solution.Identity)&quot;" />
</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>

关于c# - 用 TFS 2013 替换 TFSBuild.proj 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28414676/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com