我想构建一个.NET核心项目作为EXE而不是DLL,以便它可以执行.
这里的答案不起作用:如何运行.Net Core dll?
以下是示例代码:
using System;
namespace ConsoleApplication
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我目前正在使用VSCode,每当我使用构建任务构建项目时,或者运行dotnet restore我只是.dll在我的bin/Debug文件夹中获取.
如何将.NET核心应用程序构建为exe?
额外奖励:我这样做,会在Mac或其他设备上运行吗?
我认为大多数人进入此页面是因为他们选择了 .net core,并且无法从 VS 2017/VS 2019 版本中获取可执行的 .exe 文件。vs 2015 总是用来为控制台应用程序制作 .exe 文件。在 vs 2017/vs 2019 中,当您创建项目时,您有 2 个控制台应用程序选择。一种是控制台应用程序 (.NET Core),另一种选择是控制台应用程序 (.NET Framework)。如果您选择 .NET Core 选项,您将不得不竭尽全力从构建中获取 .exe 文件。(.NET Core) 选项从构建创建 .dll 文件。如果您选择 (.NET Framework) 选项,默认情况下它将为您构建 xxxx.exe 可执行文件。
要生成 EXE 而不是 DLL,您需要一个独立的部署。您当前所做的是依赖于框架的部署。要将您的转换为自包含,请在您的 project.json 文件中执行以下步骤。
"type": "platform"。"runtimes"为您的应用支持的操作系统添加一个部分。构建时,传入目标操作系统。例如dotnet build -r osx.10.10-x64。
这是结果 project.json
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
},
"runtimes": {
"win10-x64": {},
"osx.10.10-x64": {}
}
}
Run Code Online (Sandbox Code Playgroud)
另见:https : //docs.microsoft.com/en-us/dotnet/articles/core/deploying/#self-contained-deployments-scd
| 归档时间: |
|
| 查看次数: |
5273 次 |
| 最近记录: |