当我发布一个ASP.NET Core 3.0项目时,我会得到一些本地化的文件夹,其中显示的4个程序集都在这些文件夹中。我不确定为什么会包含这些文件夹和文件。我的包都没有引用CodeAnalysis
包。
我在csproj文件中添加了<PreserveCompilationContext>false</PreserveCompilationContext>
,但没有帮助。有没有办法排除它们?
当我发布一个ASP.NET Core 3.0项目时,我会得到一些本地化的文件夹,其中显示的4个程序集都在这些文件夹中。我不确定为什么会包含这些文件夹和文件。我的包都没有引用CodeAnalysis
包。
我在csproj文件中添加了<PreserveCompilationContext>false</PreserveCompilationContext>
,但没有帮助。有没有办法排除它们?
3条答案
按热度按时间ubof19bj1#
添加以下内容:
.csproj
文件:按照建议,您可以使用
none
排除所有这些变量:考虑到你想要的语言,比如英语和西班牙语:
适用于VS 2019和其他版本
更新2021/2022:
仍在使用Visual Studio 2022和.NET 6
mu0hgdu02#
如果您有一个对
Microsoft.VisualStudio.Web.CodeGeneration.Design
的项目引用(搭建控制器需要此引用),则在发布的输出中会出现许多包含CodeAnalysis.dll
文件的语言文件夹。如果您的项目确实如此,请更改.csproj
文件中的包引用以包含ExcludeAssets="all"
例如,旧的
*.csproj
文件新文件
*.csproj
应为xqnpmsa83#
在我的例子中,这些本地化文件夹的源代码来自Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包。它依赖于Microsoft.CodeAnalysis.Razor。您可以在此处阅读有关该包用途的更多信息:https://learn.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1
当试图利用包时,您不能只排除一个资产。我的解决方法是每当项目处于调试模式时,有条件地包含包引用。
然后,我使用#if预处理器指令有条件地运行启用razor运行时编译的代码。
请注意:您可能需要删除bin文件夹,才能在生成后看到删除的文件夹。此外,请确保在正确的解决方案配置下生成。
我能够找到一个Github问题来描述这个确切的场景,但不幸的是它从未得到解决。