現在、StyleCop を参照する .Net Standard プロジェクトがあります。NuGet パッケージとしてビルドされ、ruleset
custom と customprops
ファイルが含まれます。NuGet パッケージを参照するプロジェクトの出力タイプに基づいて、props ファイルに別のルール セットを適用したいと考えています。
この NuGet パッケージを、クラス ライブラリや Windows フォームなどのさまざまな種類のプロジェクトを含むソリューションに追加したいと考えています。プロジェクトの種類が異なれば、異なるルールセットが必要になります。たとえば、Windows フォーム アプリケーションでは強制的にドキュメントを作成したくありませんが、クラス ライブラリ プロジェクトでは強制的に作成したいと考えています。
sを使用してこれを実行しようとしていCondition
ますが、デフォルトの StyleCop ルールセットが常に使用されます。
props
また、プロジェクトとファイルをデバッグして、ルール セットが含まれていることを確認する方法も知りません。
これが私のprops
ファイルです。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CodeAnalysisRuleSetLocation Condition=" '$(NuGetPackageRoot)' != '' ">$(NuGetPackageRoot)\CustomStyleCop\1.0.0</CodeAnalysisRuleSetLocation>
<CodeAnalysisRuleSetLocation Condition=" '$(CodeAnalysisRuleSetLocation)' == '' and '$(SolutionDir)' != '' ">$(SolutionDir)\packages\CustomStyleCop.1.0.0</CodeAnalysisRuleSetLocation>
<CodeAnalysisRuleSetLocation Condition=" '$(CodeAnalysisRuleSetLocation)' == '' ">$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))\packages\CustomStyleCop.1.0.0</CodeAnalysisRuleSetLocation>
</PropertyGroup>
<PropertyGroup>
<CodeAnalysisRuleSet>
<CodeAnalysisRuleSet Condition=" '$(OutputType)' == 'Library' ">$(CodeAnalysisRuleSetLocation)\CustomStyleCopClassLibrary.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRuleSet Condition=" '$(OutputType)' == 'Exe' or '$(OutputType)' == 'WinExe' ">$(CodeAnalysisRuleSetLocation)\CustomStyleCopForms.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(CodeAnalysisRuleSetLocation)\stylecop.json" Link="stylecop.json" />
</ItemGroup>
</Project>
そして私のnuspec
ファイル。
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>CustomStyleCop</id>
<title>CustomStyleCop</title>
<version>1.0.0</version>
<developmentDependency>true</developmentDependency>
<dependencies>
<dependency id="StyleCop.Analyzers" version="[1.1.1-rc.114]" />
</dependencies>
</metadata>
<files>
<file src="stylecop.json" target="" />
<file src="Rulesets\CustomStyleCopClassLibrary.ruleset" target="" />
<file src="Rulesets\CustomStyleCopForms.ruleset" target="" />
<file src="CustomStyleCop.props" target="build" />
</files>
</package>
これは可能ですか?それとも、プロジェクトの種類ごとに異なる NuGet パッケージが必要ですか? 現在、msbuild をデバッグする方法はありますか? (昔はあったけど廃盤になった)