如何防止卫星程序集被发布?

10
当通过命令行进行“dotnet publish”发布时,本地化和代码覆盖率卫星程序集始终会显示(如图所示)。
我找到了一个部分解决方案,即添加
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>

在.csproj文件中删除那些与语言相关的程序集。虽然在常规项目中删除了所有本地化卫星程序集,但它并不能完全解决问题,因为一些在xUnit项目中仍然保留了。图像中每个语言文件夹都只包含一个dll,“Microsoft.VisualStudio.TraceDataCollector.resources.dll”,而代码覆盖文件夹则包含一些代码覆盖特定的dll和exe。

我已经尝试了各种我找到的解决方案,例如在.csproj中添加以下内容:

<ItemGroup>
   <Content Include="wwwroot\LicenceFiles" CopyToPublishDirectory="Never" />
</ItemGroup>

但是没有一个方法能够帮助我。它可以删除wwwroot文件夹,但是对于任何语言文件夹,当指定这些文件夹时它都没有做任何事情。我提到的部分解决方案是唯一一个最终删除了一些东西的方法。我正在寻找一种无需使用批处理文件或类似方法,纯粹通过项目设置、发布选项或类似方式删除这些文件夹的方法。
我正在使用dotnet core版本2.2.203。

Extra folders

1个回答

3
我还在我的.NET Core Web项目的启动中添加了SatelliteResourceLanguages标签,但是在部署解决方案时遇到了同样的问题。我在我的测试项目中添加了IsPublishable标签,这些文件就不再随我的解决方案一起部署了。
WebApp.Tests.csproj
  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <IsPackable>false</IsPackable>
    <IsPublishable>false</IsPublishable>
  </PropertyGroup>

WebApp.UI

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
  </PropertyGroup>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接