Msbuild 未应用通过NuGet包部署的规则集
我创建了一个NuGet包,用于在我们的项目中共享StyleCop.Analyzer的规则集,如下所述: (除非我使用$(MSBuildThisFileDirectory)而不是$(CodeAnalysisRuleSetLocation))Msbuild 未应用通过NuGet包部署的规则集,msbuild,nuget,nuget-package,stylecop,build-tools,Msbuild,Nuget,Nuget Package,Stylecop,Build Tools,我创建了一个NuGet包,用于在我们的项目中共享StyleCop.Analyzer的规则集,如下所述: (除非我使用$(MSBuildThisFileDirectory)而不是$(CodeAnalysisRuleSetLocation)) <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet> </PropertyGroup> <ItemG
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
文件:
LDBV.codealysis.RuleSet.nuspec
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata minClientVersion="2.5">
<id>LDBV.CodeAnalysis.RuleSet</id>
<version>0.1.15311</version>
<authors>[...]</authors>
<owners>LDBV</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<developmentDependency>true</developmentDependency>
<description>[...]</description>
<copyright>Copyright ©2019 LDBV</copyright>
<dependencies>
<dependency id="StyleCop.Analyzers" version="1.1.118" />
</dependencies>
</metadata>
<files>
<file src="stylecop.json" target="" />
<file src="LDBV.ruleset" target="" />
<file src="LDBV.CodeAnalysis.RuleSet.props" target="build" />
</files>
</package>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
问题是:
这在VisualStudio中运行良好。
但是在我们的Jenkins Buildserver上,对于迁移到SDK风格的项目,规则文件不会提供给编译器。(至少我看到的是这种行为)
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
旧式项目接收对编译器的调用,如
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Roslyn\csc.exe [..] /ruleset:C:\Users\ServiceJenkins\.nuget\packages\ldbv.codeanalysis.ruleset\0.1.15311\LDBV.ruleset
SDK样式的项目不接收参数/规则集:[……]
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
我是否遗漏了一些应该在SDK样式的项目中设置的属性,或者是什么导致了这种行为
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>
BuildTools版本为16.8.1(最新版本)
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)..\LDBV.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(MSBuildThisFileDirectory)..\stylecop.json" Link="stylecop.json" />
</ItemGroup>