.NET Core 3.1 自包含应用程序没有为可执行文件设置版本

.NET Core 3.1 Self Contained Application Does Not Have Version Set for Executable

我正在将应用程序部署为独立的 win-x64 应用程序。这样做会生成一个 .exe,用于在客户端计算机上启动应用程序,但是我需要在 .exe 上设置“产品版本”和“文件版本”。我的问题是这个 .exe 没有设置这些属性中的任何一个,尽管部署的所有其他二进制文件都设置了这些属性。

这是 运行 生成独立应用程序二进制文件的发布命令:

dotnet publish MyApp.csproj -c MyCustomRelease -r win-x64 --self-contained=true -v normal

此外,我还为 MyApp.csproj 设置了以下属性。这些是:

  <PropertyGroup>
   <TargetFramework>netcoreapp3.1</TargetFramework>
   <GenerateDocumentationFile>true</GenerateDocumentationFile>
   <Configurations>Debug;Release;MyCustomRelease</Configurations>
   <Platforms>AnyCPU</Platforms>
   <AssemblyVersion>3.2.0</AssemblyVersion>
   <Version>3.2.0</Version>
   <FileVersion>3.2.0</FileVersion>
  </PropertyGroup>

但是当我检查我的 .exe 版本时,我没有看到为文件或产品版本设置了 3.2.0。但是,生成的 .dll do 已正确设置。我错过了什么?

您的问题已在此处的另一个 Whosebug 问题中得到解答:

希望这些信息对您有所帮助!如果上面的 link 回答了您的问题,请务必将此 post 标记为已回答,以便发现它的其他人被发送到正确的位置。

我想我找到了答案。我没有提到我是在 MacOS 上构建它的(最终将在我们的 CICD 管道中的 linux 容器中构建)因为我认为我的 OS 无关紧要对于这种功能,但是经过认真挖掘后,我确实发现 this GitHub issue 详细说明为自包含应用程序自定义 exe 依赖于 Windows API。