Asp.net-Core

如何阻止本地化的 Microsoft.CodeAnalysis.*.resources.dll 文件被 ASP.NET Core 發布?

  • November 2, 2019

當我發布一個 ASP.NET Core 3.0 項目時,我得到了一些本地化文件夾,其中顯示的 4 個程序集位於每個文件夾中。我不確定為什麼要包含這些文件夾和文件。我的包都沒有引用CodeAnalysis包。

<PreserveCompilationContext>false</PreserveCompilationContext>在 csproj 文件中添加了但沒有幫助。有沒有辦法排除它們?

在此處輸入圖像描述

在此處輸入圖像描述

CodeAnalysis.dll如果您有對 的項目引用,那麼您會在發布的輸出中獲得許多包含文件的語言文件夾Microsoft.VisualStudio.Web.CodeGeneration.Design,這是搭建控制器所必需的。如果您的項目是這樣,請將.csproj文件中的包引用更改為包含ExcludeAssets="all"

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" ExcludeAssets="All" />

例如,舊*.csproj文件

<Project Sdk="Microsoft.NET.Sdk.Web">

 <PropertyGroup>
   <TargetFramework>netcoreapp3.0</TargetFramework>
   <UserSecretsId>aspnet-foo-4E53EF45-B3BE-4943-81BE-2449DC5AA2BC</UserSecretsId>
   <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
 </PropertyGroup>
 
 <ItemGroup>
   <!-- ... -->
   <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design"
                     Version="3.0.0" />
 </ItemGroup>
 
 <ItemGroup>
   <!-- ... -->
 </ItemGroup>
</Project>

新文件*.csproj應該是

<Project Sdk="Microsoft.NET.Sdk.Web">

 <PropertyGroup>
   <TargetFramework>netcoreapp3.0</TargetFramework>
   <UserSecretsId>aspnet-foo-4E53EF45-B3BE-4943-81BE-2449DC5AA2BC</UserSecretsId>
   <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
 </PropertyGroup>
 
 <ItemGroup>
   <!-- ... -->
   <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design"
                     Version="3.0.0"
                     ExcludeAssets="All" />
 </ItemGroup>
 
 <ItemGroup>
   <!-- ... -->
 </ItemGroup>
</Project>

添加這個:

<SatelliteResourceLanguages>en</SatelliteResourceLanguages>

.csproj文件:

<Project Sdk="Microsoft.NET.Sdk.Web">

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

如建議的那樣,您可以使用none排除所有這些:

<SatelliteResourceLanguages>none</SatelliteResourceLanguages>

並考慮您想要的語言,例如英語和西班牙語:

<SatelliteResourceLanguages>en;es</SatelliteResourceLanguages>

適用於VS2019及其他版本

引用自:https://stackoverflow.com/questions/58668618