Asp.net-Core
如何阻止本地化的 Microsoft.CodeAnalysis.*.resources.dll 文件被 ASP.NET Core 發布?
當我發布一個 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及其他版本

