NETSDK1237:列入 PublishReadyToRunPartialAssemblies 但同时又编译为复合映像的程序集

如果你将某个程序集列入 PublishReadyToRunPartialAssemblies,但同时又将其编译为 ReadyToRun 复合映像,则会触发 NETSDK1237 警告。 只能对单独编译的程序集使用部分编译。 SDK 会将程序集完整编译为复合映像,并忽略为其设置的 PublishReadyToRunPartialAssemblies 属性。

当在项目文件中将 PublishReadyToRunComposite 设置为 true 并在 PublishReadyToRunPartialAssemblies 中包含程序集时,将显示 NETSDK1237:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <PublishReadyToRun>true</PublishReadyToRun>
    <PublishReadyToRunComposite>true</PublishReadyToRunComposite>
  </PropertyGroup>
  <ItemGroup>
    <!-- NETSDK1237 is emitted for each assembly listed here -->
    <PublishReadyToRunPartialAssemblies Include="SomeAssembly" />
  </ItemGroup>
</Project>

若要解决此警告,请选择以下选项之一:

  • 要使程序集完全编译到复合映像中,请先将其从 PublishReadyToRunPartialAssemblies 中删除。
  • 如果您希望部分和单独编译程序集,而非合并到复合镜像中,请将 PublishReadyToRunComposite 设置为 false