随着Roslyn分析器的引入,现在将分析器(以及任何依赖项)添加到Visual Studio项目中-我添加的一个分析器包括64个依赖程序包。然后,这些DLL包含在项目的主要输出中。其中一些DLL也将由项目使用,但许多DLL将仅由分析器使用。
因此,如果我使用发布功能(针对网站)创建了部署程序包,或者使用了其他构建工具(例如OctoPack),则包含了主要输出中的所有文件(包括所有分析器)。我的观点是,您应该只部署绝对必要的代码(即,最小化攻击面)。
几个问题:
人们如何将分析仪从生产安装中排除,尤其是例如在Visual Studio中使用发布功能的情况下。
如果手动生成安装软件包(例如,使用WIX),则如何确定要从项目中排除哪些DLL。
答案 0 :(得分:0)
您需要在PrivateAssets
中将All
设置为PackageReference
,例如:
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6" PrivateAssets="All" />
另请参阅NuGet文档中的Controlling dependency assets。