Packaging transitive analyzers with NuGet
Consider the scenario of ThisAssembly and its referenced packages: the main package is essentially a meta-package so that anyone wanting to leverage all the codegen in all the ThisAssembly.* packages can reference a single one. By default, NuGet pack will create a package that declares the project reference dependencies like so:
Note all those exclude
. Not good since now it means projects referencing this package will not get the transitive analyzers, which are precisely the point of this meta-package.
The fix is highly non-obvious: you must explicitly state that none of the referenced project assets are to be flagged as private:
This properly allows the transitive build and analyzer assets to be properly installed on the referencing project.
Last updated