Son*_*sen 1 c# visual-studio .net-core
我正在尝试将版本号设置为我想要的东西(阅读他们希望我做的事情)。他们想要一个特定的格式,我需要设置程序的版本。
我尝试使用UsingTask 来设置PropertyGroup 变量。我的UsingTask正在运行。
所有这一切对我来说都是新的,我设法获得了下面的代码。现在,如何设置本地项目变量?我的初始值已使用,接下来我想在UsingTask中以编程方式设置它
这一切都在 *.csproj 文件中完成
<Project Sdk="Microsoft.NET.Sdk">
<!-- my additional project variable, used below -->
<PropertyGroup Label="UserMacros">
<AssemblyVersion>1.2.3.5</AssemblyVersion>
</PropertyGroup>
<UsingTask TaskName="EnvVarSet"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<Task>
<Code Type="Fragment" Language="cs">
<![CDATA[
// here I want to set the version number to our format
Log.LogMessage(MessageImportance.High, "**** Setting variables");
System.Environment.SetEnvironmentVariable("AssemblyVersion", "1.5.6.7");
var a = Environment.GetEnvironmentVariable("AssemblyVersion");
Log.LogMessage(MessageImportance.High, "**** Value is: " +a);
]]>
</Code>
</Task>
</UsingTask>
<PropertyGroup>
<OutputType>WinExe</OutputType>
<!-- the version number I want to set -->
<Version>$(AssemblyVersion)</Version>
<!-- this does not work -->
<!-- <Version>$([System.Environment]::GetEnvironmentVariable('AssemblyVersion'))</Version>-->
other values....
</PropertyGroup>
//more project....
<Target Name="BeforeBeforeBuild" BeforeTargets="BeforeBuild">
<EnvVarSet />
<Message Text="***** AssemblyVersionis now: $([System.Environment]::GetEnvironmentVariable('AssemblyVersion'))"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以查看文档https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build。您可以使用 dotnct 命令来执行此操作。使用多个 doctnct 命令将版本号传递给每个命令,并通过 dotnet build- 构建项目及其所有依赖项。您可以使用以下命令来帮助您设置版本号:dotnet build /p:AssemblyVersion=1.2.3.4
| 归档时间: |
|
| 查看次数: |
3326 次 |
| 最近记录: |