visual-studio - 从生产部署中排除 roslyn 分析器 DLL

标签 visual-studio roslyn roslyn-code-analysis

随着 Roslyn 分析器的引入,分析器(以及任何依赖项)现在已添加到您的 Visual Studio 项目中 - 我添加的一个分析器包含 64 个依赖包。然后,这些 DLL 将包含在项目的主要输出中。其中一些 DLL 也将由项目使用,但许多将仅由分析器使用。

因此,如果我使用发布功能(针对网站)创建部署包,或使用其他构建工具(例如 OctoPack),则包含主输出中的所有文件(包括所有分析器)。我的观点是,您应该只部署绝对必要的代码(即最小化攻击面)。

几个问题:

  1. 人们如何从生产安装中排除分析器,尤其是当您在 Visual Studio 中使用“发布”功能时。

  2. 如果您手动构建安装包(例如使用 WIX),如何确定从项目中排除哪些 DLL。

最佳答案

您需要在PackageReference中将PrivateAssets设置为All,例如:

<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6" PrivateAssets="All" />

另请参阅Controlling dependency assets在 NuGet 文档中。

关于visual-studio - 从生产部署中排除 roslyn 分析器 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199098/

相关文章:

c# - 如何创建仅在手动指定时运行的单元测试?

.net-4.5 - Roslyn 与 .net 4.5.2

c# - SemanticModel.GetSymbolInfo(typeSyntax) 返回 null

javascript - VS 2015 - 如何生成 references.js 文件?

c - 使用/clr 支持编译的 C++-CLI 库调试 C 程序

visual-studio - 使 Visual Studio 2008 或 2010 看起来像 Expression Blend

c# - 使用自定义符号执行 Roslyn 条件编译(例如 : "DEBUG") defined

c# - 使用 CodeAnalysis.Compilation.Emit 编译时复制 App.config

c# - 在不构建解决方案的情况下运行 StyleCopAnalyzers

c# - EditorConfig - 如何在自定义分析器中访问 editorconfig 规则设置