如何防止发布卫星程序集

时间:2019-06-12 14:53:52

标签: c# .net-core

当通过命令行使用“ 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 个答案:

答案 0 :(得分:-1)

我还在启动.NET Core Web Project中添加了SatelliteResourceLanguages标记,但是在部署解决方案时发现了相同的问题。我在测试项目中添加了IsPublishable标记,这些文件不再与我的解决方案一起部署。

WebApp.Tests.csproj

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

WebApp.UI

image-name.jpg