我想发布一个WinForm(.Net框架)作为一个可执行文件(只有一个文件)。我已经测试了不同的方法。
我试过了
dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true --output ../result
错误:C:\Program Files\dotnet\sdk\5.0.302\Microsoft.Common.CurrentVersion.targets(3746,5):错误MSB 4062:无法从程序集Microsoft.Build. Tasks.Core加载“Microsoft.Build. Tasks.AL”任务,版本=15.1.0.0,区域性=中性,PublicKeyToken= b 03 f5 f7 f11 d50 a3 a。请确认声明正确,程序集及其所有依赖项可用,并且任务包含实现Microsoft. Build. Framework. ITask的公共类。[C:\RPIC\PICDashboard\PICDashboard\PICDashboard\PICDashboard\PICDashboard.csproj]
和
msbuild /t:Publish /p:PublishSingleFile=True /p:IncludeNativeLibrariesForSelfExtract=True/p:SelfContained=True/p:Configuration=Release /p:Platform=“Any CPU”/p:RuntimeIdentifier=win-x64 /p:OutputPath=../result
msbuild没有错误,但是它产生了许多文件,就像Debug和Release文件夹中的一样,它也给予了我一个警告
C:\RPIC\PICDashboard\PICDashboard\PICDashboardSetup\PICDashboardSetup.vdproj.metaproj:警告MSB 4078:MSBuild不支持项目文件“PICDashboardSet up\PICDashboardSetup.vdproj”,因此无法生成该文件。
我也试过
dotnet msbuild -target:Publish -property:PublishSingleFile=True -property:IncludeNativeLibrariesForSelfExtract=True -property:SelfContained=True -property:Configuration=Release -property:RuntimeIdentifier=win-x64 -property:Platform=“Any CPU”-property:OutDir=../result
错误:C:\Program Files\dotnet\sdk\5.0.302\Microsoft.Common.CurrentVersion.targets(3746,5):错误MSB 4062:无法从程序集Microsoft.Build. Tasks.Core加载“Microsoft.Build. Tasks.AL”任务,版本=15.1.0.0,区域性=中性,PublicKeyToken= b 03 f5 f7 f11 d50 a3 a。请确认声明正确,程序集及其所有依赖项可用,并且任务包含实现Microsoft. Build. Framework. ITask的公共类。[C:\RPIC\PICDashboard\PICDashboard\PICDashboard\PICDashboard\PICDashboard.csproj]
有什么方法可以让我发布WinForms作为一个单一的exe?
1条答案
按热度按时间z9zf31ra1#
“Any way”- yes,虽然我不能说“always”/“for all”应用程序及其依赖项。
此外,以下是在Visual Studio(不是
dotnet
cli -我没有尝试过)中使用一个简单的“Hello World”Windows窗体应用程序完成的(* 没有外部依赖项 *)1.在应用程序构建属性-〉发布配置中,将调试信息设置为
None
1.在您的
Publish Settings
中结果(在上面设置的
bin\Release\net5.0-windows\publish\
文件夹中):运行一个很棒的应用程序:)