我试图创建一个单一的可执行文件分发这个基本的小应用程序:
using System;
using System.Windows;
namespace BlackScreen
{
public partial class App : Application
{
[STAThread]
public static void Main()
{
App app = new App();
Window window = new Window();
window.Show();
app.MainWindow = window;
app.Run();
}
}
}
我的csproj文件包含:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<PublishSingleFile>true</PublishSingleFile>
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
</Project>
然而,当我运行dotnet publish -r Release
时,我在Release
文件夹中得到了许多文件,而不是一个exe文件。如果我只把exe文件从该文件夹中取出,并把它放在其他地方,它就不会运行,所以很明显,这几十个其他文件是必需的。
在以前对类似问题的回答中,推荐的方法是使用ilmerge,但是现在已经不推荐使用了。是否有替代方法,或者创建自包含的exe文件不再可能?
1条答案
按热度按时间vsikbqxv1#
以下项目文件:
...和以下命令...:
...可用于创建自包含的单文件部署WPF应用程序。