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

时间:2019-10-02 09:46:16

标签: visual-studio roslyn roslyn-code-analysis

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

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

几个问题:

  1. 人们如何将分析仪从生产安装中排除,尤其是例如在Visual Studio中使用发布功能的情况下。

  2. 如果手动生成安装软件包(例如,使用WIX),则如何确定要从项目中排除哪些DLL。

1 个答案:

答案 0 :(得分:0)

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

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

另请参阅NuGet文档中的Controlling dependency assets