3

.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.

4

1 に答える 1