Visual Studio 2022 C# WPF 项目
我想分发单个 .exe 文件,而不要求目标计算机安装 .NET 6.0 运行时。
我只能在项目的属性窗口中找到C/C++代码生成的解决方案,但我在VS 2022中看到的完全不同,并且没有静态链接的设置。
如何部署单文件 .NET 6 WPF 应用程序:
在解决方案资源管理器中右键单击 WPF 应用程序项目,然后选择编辑项目文件
将以下行添加到
<PropertyGroup>
文件中的 .csproj
元素:
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
在解决方案资源管理器中右键单击项目,然后选择发布
在目标运行时设置下将部署模式设置为自包含
选择 win-* 作为 目标运行时
检查文件发布选项下的生成单个文件
选项单击保存,然后单击发布
将目标位置的内容复制到目标机器并运行应用程序`
.csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<IncludeNativeLibrariesForSelfExtract >true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
</Project>
FolderProfile.pubxml:
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0-windows\publish\win-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0-windows</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>true</SelfContained>
<PublishSingleFile>True</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
</PropertyGroup>
</Project>
这个问题的权威答案在这里:
我按照 Microsoft 的简单说明操作并获得了我的单个 .exe 文件。