我正在发布这样的dotnet核心应用程序:
call dotnet publish MyApp.csproj -c Release -o "%scriptDir%\..\dist\Publish\MyApp" -r win10-x64
我的“.csproj”文件包含此(VersionInfo.cs文件):
<ItemGroup>
<Compile Include="..\VersionInfo.cs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
</ItemGroup>
它包含以下信息:
[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyCompany("My Company")]
[assembly: AssemblyCopyright("Copyright © My Company 2018")]
[assembly: AssemblyTrademark("My Company")]
在输出“ MyApp.dll ”中获取所有信息(文件属性中设置的版本,公司名称等)。 但生成的运行时可执行文件“ MyApp.exe ”没有任何版本信息:(。
答案 0 :(得分:1)
在项目文件中包含汇编信息的方法要简单得多。
<PropertyGroup>
<AssemblyVersion>1.0</AssemblyVersion>
<FileVersion>1.0.0.0</FileVersion>
<Company>My Company</Company>
<Copyright>Copyright © My Company 2018</Copyright>
<Trademark>My Company</Trademark>
</PropertyGroup>
作为示例,您可以查看Newtonsoft.Json project file。
Here您可以找到有关.NET Core exe文件如何工作的一些讨论。
总体:
答案 1 :(得分:0)
我能够通过将.csproj中的GenerateAssemblyInfo标签设置为true来解决此问题。
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<OutputType>WinExe</OutputType>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo> <!-- this was false -->
...
</PropertyGroup>