【问题标题】:Is it possible to configure the csproj so that it overrides the --self-contained flag for dotnet publish?是否可以配置 csproj 以覆盖 dotnet 发布的 --self-contained 标志?
【发布时间】:2023-06-19 17:22:01
【问题描述】:

在我的构建服务器上,对解决方案文件调用 dotnet publish 命令,并将自包含参数设置为 true。但是,我希望解决方案中的一个项目始终在自包含设置为 false 的情况下运行,因为我想在该项目的发布输出中排除 dotnet 运行时。我怎样才能做到这一点?

【问题讨论】:

  • 依赖于框架的输出是作为一个步骤在 bin 文件夹中生成的,因此您无需找到覆盖该标志的方法,只需从正确的文件夹中复制所需的内容即可。

标签: .net publish csproj


【解决方案1】:

您可以编辑您的 csproj 文件以标记该标志以允许在项目的静态部分中覆盖,然后将其设置为 False

<Project TreatAsLocalProperty="SelfContained">
  <PropertyGroup>
    …
    <SelfContained>False</SelfContained>
  </PropertyGroup>
  …
</Project>

【讨论】: