Boris Callens Boris Callens - 9 months ago 64
C# Question

Add code analisys ruleset through nuget package

I'm trying to build a NuGet package that adds our company's code analysis dictionary automatically and updatable.

The rule set is added in the content folder and now I want to use the install.ps1 script to add the rule set in the project file.

I figured out the way to go would be to use the envDTE, but I can't find much useful documentation about it other then this overwhelming object graph in which I can't find the CodeAnalysisRuleset node.

Am I pursuing the right path?

Is there any relevant tutorial/documentation on how to use the envDTE in NuGet powershell?

How can I run/debug my install script without having to actually add it to a package and install it against a project?


Although @Nicole Calinoiu showed the better way, this morsel of information might come in handy later on:

foreach ($config in $project.ConfigurationManager){
$config.Properties.Item("CodeAnalysisRuleSet").Value = "myruleset.ruleset"

Answer Source

There's no need to script this. Both the ruleset and dictionary can be registered via an imported MSBuild .props file, as described at

For example, your NuGet source folder structure might look like this (assuming "CodeAnalysisSettings" is your package ID):

  • build
    • CodeAnalysisSettings.props
  • content
    • MyCustomDictionary.xml
    • MyRules.ruleset

where the contents of CodeAnalysisSettings.props are something like the following:

<Project xmlns="">
        <CodeAnalysisDictionary Include="MyCustomDictionary.xml" />