为什么当我在Visual Studio 2017中创建.Net Core Console Application项目时,它是否输出DLL而不是EXE?
好吧,我们知道答案了,并且它在StackOverflow上其他非常受欢迎的问题中得到了很好的记录和解决。
我对其他答案中跳跃的数量感到沮丧。
那么,有没有更简单的方法来生成exe?
答案 0 :(得分:0)
好吧,这就是我的想法。
我决定将其写为自己的问题和答案,因为从技术上讲,这不是 问题的答案,“我如何创建.Net Core Exe?” < / em>
.Net Core便携式应用程序是DLL,并且您使用dotnet yourapp.dll
启动它,除非它是一个独立的部署,在这种情况下,您可以在Windows或yourapp.exe
上使用./yourapp
启动它。在Linux上。
此方法不会尝试解决或更改它。
有关此文档,请参见:https://docs.microsoft.com/en-us/dotnet/core/deploying/index
我一直在学习如何同时支持新版本(.Net Core和Standard)和旧版本(.Net Framework)。
现在变得非常简单。
这是.Net SDK最小的yourapp.csproj
文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>
这会吐出yourapp.dll
但是,如果将其更改为:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.0;net451</TargetFrameworks>
</PropertyGroup>
</Project>
(请注意,从<TargetFramework>
更改为<TargetFrameworks>
!)
现在,在构建时,在输出目录中有一个net451
和一个netcoreapp2.0
目录。在netcoreapp2.0
中有可移植的dll
应用程序。在net451
中有一个普通的完整框架控制台exe
。
显然,它不是可移植的,但其他方法也不创建Windows exe。如果您绝对需要针对.net Core的Windows exe,请使用本文顶部链接的方法。当然,您可以同时使用两者,这对TargetFrameworks
节点来说是一件好事。
这是一个StackOverflow问题,其中包含有关创建真实的.Net Core EXE的更多信息: