如何在 .net 标准项目中通过 nuget 获取 stylecop 规则集
How to get a stylecop ruleset trough nuget in a .net standard project
我们正在尝试为我们所有的项目提供一个 nuget 包,其中包含一个 stylecop 规则集。
我们获得了项目中的文件,但规则集并未应用于我们的项目。它仍然使用 minimimumrecomended.ruleset。
我们现在拥有的是:
Custom.stylecop.props
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>Custom.StyleCop.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
</Project>
custom.stylecop.targets
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\Content\stylecop.json">
<Link>stylecop.json</Link>
</AdditionalFiles>
</ItemGroup>
</Project>
Custom.stylecop.nuspec
<contentFiles>
<files include="Content/stylecop.json" buildAction="EmbeddedResource" />
</contentFiles>
....
<files>
<file src="build\**" target="build" />
<file src="Content/stylecop.json" target="contentFiles" />
</files>
有没有人有关于 github 的任何想法或示例,我们可以在哪里找到示例,因为我们找不到任何示例。
在我们的 Xamarin.Forms 项目中,修复是手动编辑 .NET Standard .csproj
文件的过程。如果有更好的方法,请告诉我!
- 首先,在文本编辑器 (_Notepad++) 中打开您的 .NET Standard 项目
- 然后在
<PropertyGroup>
里面加上<CodeAnalysisRuleSet> ... </CodeAnalysisRuleSet>
.
<PropertyGroup>
<CodeAnalysisRuleSet>..\stylecop.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
- (optional) 如果您想在项目中访问这些文件,您可以使用
<AdditionalFiles ... />
. 创建一个 ItemGroup
<ItemGroup>
<AdditionalFiles Include="..\stylecop.json" />
<AdditionalFiles Include="..\stylecop.ruleset" />
</ItemGroup>
参考
https://github.com/dotnet/roslyn/blob/master/docs/compilers/Rule%20Set%20Format.md
我们解决了以下问题:
CodeAnalysis.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\CodeAnalysis.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" />
</ItemGroup>
</Project>
CodeAnalysis.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>CodeAnalysis</id>
<version>1.0.0</version>
<description>Roslyn analyzers, rule sets and additional configuration to be used for Code Analysis</description>
<authors></authors>
<owners></owners>
<dependencies>
<dependency id="Stylecop.Analyzers" version="1.0.2" />
</dependencies>
</metadata>
<files>
<file src="stylecop.json" />
<file src="CodeAnalysis.ruleset" />
<file src="CodeAnalysis.props" target="build" />
</files>
</package>
我们正在尝试为我们所有的项目提供一个 nuget 包,其中包含一个 stylecop 规则集。 我们获得了项目中的文件,但规则集并未应用于我们的项目。它仍然使用 minimimumrecomended.ruleset。
我们现在拥有的是:
Custom.stylecop.props
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<RunCodeAnalysis>true</RunCodeAnalysis>
<CodeAnalysisRuleSet>Custom.StyleCop.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
</Project>
custom.stylecop.targets
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)\Content\stylecop.json">
<Link>stylecop.json</Link>
</AdditionalFiles>
</ItemGroup>
</Project>
Custom.stylecop.nuspec
<contentFiles>
<files include="Content/stylecop.json" buildAction="EmbeddedResource" />
</contentFiles>
....
<files>
<file src="build\**" target="build" />
<file src="Content/stylecop.json" target="contentFiles" />
</files>
有没有人有关于 github 的任何想法或示例,我们可以在哪里找到示例,因为我们找不到任何示例。
在我们的 Xamarin.Forms 项目中,修复是手动编辑 .NET Standard .csproj
文件的过程。如果有更好的方法,请告诉我!
- 首先,在文本编辑器 (_Notepad++) 中打开您的 .NET Standard 项目
- 然后在
<PropertyGroup>
里面加上<CodeAnalysisRuleSet> ... </CodeAnalysisRuleSet>
.
<PropertyGroup>
<CodeAnalysisRuleSet>..\stylecop.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
- (optional) 如果您想在项目中访问这些文件,您可以使用
<AdditionalFiles ... />
. 创建一个 ItemGroup
<ItemGroup>
<AdditionalFiles Include="..\stylecop.json" />
<AdditionalFiles Include="..\stylecop.ruleset" />
</ItemGroup>
参考
https://github.com/dotnet/roslyn/blob/master/docs/compilers/Rule%20Set%20Format.md
我们解决了以下问题:
CodeAnalysis.props
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\CodeAnalysis.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" />
</ItemGroup>
</Project>
CodeAnalysis.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>CodeAnalysis</id>
<version>1.0.0</version>
<description>Roslyn analyzers, rule sets and additional configuration to be used for Code Analysis</description>
<authors></authors>
<owners></owners>
<dependencies>
<dependency id="Stylecop.Analyzers" version="1.0.2" />
</dependencies>
</metadata>
<files>
<file src="stylecop.json" />
<file src="CodeAnalysis.ruleset" />
<file src="CodeAnalysis.props" target="build" />
</files>
</package>