2017-04-20 116 views
2

发布时,我有一个网络核心consoleapp项目,具体如下(VS 2017年的风格):安装exe文件版本的dotnet

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    <Version>2.0.0</Version> 
    <AssemblyVersion>3.0.0.0</AssemblyVersion> 
    <FileVersion>4.0.0.0</FileVersion> 
    <RuntimeIdentifiers>win10-x64</RuntimeIdentifiers> 
    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion> 
    </PropertyGroup> 
</Project> 

我可以建立项目没有任何问题,我可以使用DOTNET发布发布-r win10-x64,它会和dll文件一起生成一个exe文件。我的问题是,exe文件有一些奇怪的FileVersion和ProductVersion字段(在我的情况FileVersion = 1.0.1.4500和ProductVersion 1.0.1.cee57 ...(一些GUID))。此外,其余的文件细节(名称,版权)与dotnet相关,而不是我自己的项目。

有什么办法可以在发布时控制exe的细节?

回答

2

不,你的项目的主要构建输出仍然是一个.dll文件,.exe文件(或在Linux,Mac可执行文件)文件是复制和重命名dotnet.exe(或即将到来的2.0版本的情况下,apphost.exe使用DLL名称运行嵌入式)。

该exe文件只是一个助手启动运行时,然后加载您的dll。但是,您可以尝试使用二进制编辑工具,如editbin.exe(VS C++ Tools)在发布后修改文件。

+0

现在我读了它,这很有道理。谢谢! – mslliviu

+1

fyi的exe文件只是从这个NuGet包中提取的:https://www.nuget.org/packages/runtime.win7-x64.Microsoft.NETCore.DotNetHost/1.0.1 这允许构建独立的.net核心从Linux或Mac机器上运行在Windows上的应用程序 –