在 .NET 5 项目的输出目录中创建了多余的“运行时”文件夹

max*_*axp 16 c# visual-studio .net-core .net-5

我刚刚将 (WPF) .NET 4.6 项目迁移到 .NET 5。

我注意到它现在在输出目录中创建一个名为“runtimes”的文件夹,其中包含许多依赖于平台的 dll。

由于此应用程序只能在 Windows 计算机上运行,​​因此是否可以阻止在 Visual Studio 中构建期间创建这些文件夹?

use*_*440 19

这很容易更改:在您的 csproj 文件中,将属性PropertyGroup设置SelfContained为“false”并指定RuntimeIdentifier; 像这样:

<PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net6.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWPF>true</UseWPF>
    <SelfContained>false</SelfContained>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)


Pie*_*ier 0

运行时文件夹包含运行应用程序所需的所有文件,无论您的目标平台如何。您可以指定发布单个文件,但这就是新框架的工作方式。

这种生成构建工件的新方法可能看起来违反直觉。通过 VS Online 将 .Net Core 应用程序发布到 Azure 发布后,您可以查看“运行时”文件夹