.csproj
プロジェクト ファイルではなく、.nuspec
プロジェクトファイルをパッケージ化して、プロジェクトをパッケージ化したい しかし、依存関係も明示的に指定したいと思います。
問題は、プロジェクト ファイルをパックするときに (自分のプロジェクトの小道具を使用できるようにするため) <dependencies>
、.nuspec
ファイル内の が使用されていないことです。
これを行っているのは、すべてのバージョンで小道具を変更する必要なく、小道具を 1 か所 (でAssemblyInfo.cs
)変更できるようにするためです。.nuspec
完全に制御できる場所にパックできることはわかってい.nuspec
ますが、これではすでに目的が果たせません。(依存関係をオーバーライドできるようになるまで、実際にはこれを正確に行っています)
で依存関係を明示的にオーバーライドする方法はあります.nuspec
か?
編集:
developmentDependency
これを組み込むと、ほとんど機能しました。私は nuspec で依存関係グループを使用していますが、何らかの理由で nuget はパック後にそれをフラット化しています (もちろん、csproj をパックするときのみ)。だからこれ:(デモンストレーションのためだけに)
<dependencies>
<group>
<dependency id="Some.Core" version="0.1.0" />
</group>
<group targetFramework="net4">
<dependency id="Microsoft.Bcl.Async" version="1.0.168" />
</group>
<group targetFramework="net45">
<dependency id="Some" version="0.1.0" />
</group>
</dependencies>
これになります:
<dependencies>
<dependency id="Some.Core" version="0.1.0" />
<dependency id="Microsoft.Bcl.Async" version="1.0.168" />
<dependency id="Some" version="0.1.0" />
</dependencies>
そのため、異なるグループで同じパッケージを依存関係として使用すると、パッキング時にエラーが表示されます。
An item with the same key has already been added.