我可以在构建之前在Visual Studio proj文件中自动设置AssemblyVersion吗?

问题描述 投票:0回答:1

我可以编写一个脚本来读取文本文件并在构建之前将值写入Visual Studio中的应用程序的proj文件吗?

特别是在构建之前,我想从我的解决方案中的简单文本文件中读取一个值,并将其写入.csproj文件夹中的AssemblyVersion。 1.0.2.0

visual-studio msbuild versioning
1个回答
1
投票

从文件中读取版本可以通过ReadLinesFromFile内置任务执行。


.NET Framework:

获得版本后,需要将其传递给自定义目标:

<Target Name="EntryVersion" BeforeTargets="Build">

    <Message Text="-----Entry-----" Importance="high"/>
    <Message Text=" Write Version " Importance="high"/>
    <Message Text="-----Entry-----" Importance="high"/>

    <ItemGroup>
        <Assembly Include="AssemblyProduct"><_Parameter1>$(Product)</_Parameter1></Assembly>
        <Assembly Include="AssemblyCompany"><_Parameter1>$(Company)</_Parameter1></Assembly>
        <Assembly Include="AssemblyVersion"><_Parameter1>$(Version)</_Parameter1></Assembly>
    </ItemGroup>

    <WriteCodeFragment AssemblyAttributes="@(Assembly)" Language="C#" OutputFile="..\GlobalAssemblyInfo.cs"/>
</Target>

此代码段生成将包含程序集属性的源文件。此外,输出文件必须作为链接包含在项目中,必须从AssemblyInfo中删除使用的属性。


.NET Core |标准:

可以使用来自Version的原生属性MSBuild CLI或从自定义目标覆盖它。该值将自动添加到程序集属性中。


如果你使用ApplicationVersionMicrosoft.Extensions.PlatformAbstractions,那么请参阅Issue 237


ReadLinesFromFile | WriteCodeFragment | Exec

© www.soinside.com 2019 - 2024. All rights reserved.