我可以编写一个脚本来读取文本文件并在构建之前将值写入Visual Studio中的应用程序的proj文件吗?
特别是在构建之前,我想从我的解决方案中的简单文本文件中读取一个值,并将其写入.csproj文件夹中的AssemblyVersion。 1.0.2.0
从文件中读取版本可以通过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
或从自定义目标覆盖它。该值将自动添加到程序集属性中。
如果你使用ApplicationVersion
的Microsoft.Extensions.PlatformAbstractions
,那么请参阅Issue 237。