随着 Roslyn 分析器的引入,分析器(以及任何依赖项)现在已添加到您的 Visual Studio 项目中 - 我添加的一个分析器包含 64 个依赖包。然后,这些 DLL 将包含在项目的主要输出中。其中一些 DLL 也将由项目使用,但许多将仅由分析器使用。
因此,如果我使用发布功能(针对网站)创建部署包,或使用其他构建工具(例如 OctoPack),则包含主输出中的所有文件(包括所有分析器)。我的观点是,您应该只部署绝对必要的代码(即最小化攻击面)。
几个问题:
人们如何从生产安装中排除分析器,尤其是当您在 Visual Studio 中使用“发布”功能时。
如果您手动构建安装包(例如使用 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/