从生产部署中排除 roslyn 分析器 DLL
Excluding roslyn analyzer DLLs from production deployment
随着 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" />
另请参阅 NuGet 文档中的 Controlling dependency assets。
随着 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" />
另请参阅 NuGet 文档中的 Controlling dependency assets。