Windows 是否可以使用net core创建独立的可执行文件?

Windows 是否可以使用net core创建独立的可执行文件?,windows,.net-core,Windows,.net Core,当我运行命令时: dotnet build -c Release 我获得了我的项目的程序和必要的DLL,但是为了让程序在另一台计算机上工作,我必须在计算机之间安装.NET核心运行时: 是否可以为Windows创建一个独立的程序?要创建一个自包含的可执行文件,您应该使用dotnet publish。例如: dotnet publish -r win-x64 -c release <Project Sdk="Microsoft.NET.Sdk">   <PropertyG

当我运行命令时:

dotnet build -c Release
我获得了我的项目的程序和必要的DLL,但是为了让程序在另一台计算机上工作,我必须在计算机之间安装.NET核心运行时


是否可以为Windows创建一个独立的程序?

要创建一个自包含的可执行文件,您应该使用
dotnet publish
。例如:

dotnet publish -r win-x64 -c release
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PublishTrimmed>true</PublishTrimmed>
  </PropertyGroup>
</Project>
如果您使用的是.NET Core 3,还可以通过将属性添加到csproj文件中来修剪这些库,例如:

dotnet publish -r win-x64 -c release
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PublishTrimmed>true</PublishTrimmed>
  </PropertyGroup>
</Project>

  
Exe
netcoreapp3.0
真的
  

如果您的应用程序不使用反射调用任何框架库(即dotnet命令无法确定您需要它修剪的库之一),您的输出将小得多。

您是否尝试过
dotnet publish
命令?@DavidG不幸的是,它不适用于此,它仍然存在错误:“发生了一个致命错误。找不到所需的库hostfxr.dll。"... 在我尝试使用
--self-contained
重新编译后,我得到:
错误NETSDK1031:不支持在不指定运行时标识符的情况下构建或发布自包含应用程序。请指定运行时标识符或将SelfContained设置为false。
。我肯定我忘了什么,这是我的错,但现在我承认我迷路了。所以,呃,也许你应该,呃,指定一个运行时标识符?有一个
-r
命令…@DavidG我正在测试:@DavidG-r参数和
工作正常。不幸的是,我们发送了很多DLL,我们创建了所有这些需求,但现在它的总重量为68MB。也许这是现代应用程序的一件坏事,包括Qt(这一个让我深受“发布应用程序”之苦)伟大的答案!谢谢!:)