如何排除将程序集打包到 PublishSingleFile 应用程序中

Mar*_*tin 3 .net-core .net-5 .net-core-publishsinglefile

.NET Core 和 .NET 5 具有单文件可执行功能。

如何排除托管程序集被打包到该单个文件中?

示例:我可能希望app.exe包含MyLib.A.dllMyLib.B.dll,但不包含MyLib.Special.dll。相反,我可能希望它MyLib.Special.dll驻留在旁边的磁盘上app.exe并从那里加载。

(背景:可能是MyLib.Special.dll根据 L-GPL 获得许可的,但是app.exe是专有的。)

小智 9

您可以在 ProjectReference 元素内部使用 ExcludeFromSingleFile 来防止嵌入程序集,如下所示:

  <ItemGroup>
    <ProjectReference Include="MyLib.Special.csproj">
      <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </ProjectReference>
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)