【发布时间】:2025-12-07 23:30:01
【问题描述】:
我对 msbuild 技术不是很熟悉。 目前,我的解决方案中有一个 build.proj,可以使用以下参数为 exe 分配内部版本号:
<PropertyGroup Condition=" '$(BUILD_NUMBER)' != '' ">
<!-- Build Server Number -->
<Version>$(BUILD_NUMBER)Version>
<FileVersion>$(BUILD_NUMBER)FileVersion>
<InformationalVersion>$(BUILD_NUMBER)InformationalVersion></PropertyGroup><Target Name="Version">
<Attrib Files="$(MSBuildProjectDirectory)\AssemblyInfo.cs" ReadOnly="False" />
<AssemblyInfo CodeLanguage="CS"
OutputFile="$(MSBuildProjectDirectory)\GlobalAssemblyInfo.cs"
GenerateClass="true"
AssemblyCopyright="Copyright © $(Year). All rights reserved."
AssemblyConfiguration="$(BuildConfiguration)"
AssemblyVersion="$(Version)"
AssemblyFileVersion="$(FileVersion)"
AssemblyInformationalVersion="$(InformationalVersion)" /> </Target>
现在我无法使用 build.proj。是否有其他方法可以为 csproj 分配内部版本号?
【问题讨论】:
-
当您使用 build.proj 时,这些参数如何在您的 EXE 中结束? .csproj 文件也只是一个构建文件。您可以将 build.proj 中的相关位复制到 .csproj,它应该仍然可以工作。您打算如何填充 .csproj 场景中的 buildnumber 属性?
-
好问题,它们最终出现在由 Build.proj 编辑的 AssemblyInfo.cs 文件中。我正在将该代码添加到问题中
-
您的 .csproj 仍然引用
$(MSBuildProjectDirectory)\GlobalAssemblyInfo.cs? -
你打算如何开始这个构建?从命令行还是从 VS?
-
查看这些答案:*.com/a/3623673/578411