57

ここでいくつか質問します...最初に、NuGet を使用していくつかの DLL からパッケージを作成することは可能ですか? ビジュアル スタジオ プロジェクトはなく、コマンド ラインとコンパイル済みの DLL ファイルがいくつかあるだけです。

第二に、それが可能であると仮定すると、「lib フォルダー外のアセンブリ」という警告が継続的に表示されるのはなぜですか? 関連するアセンブリを取得して、NuGet パッケージ内の参照として自分自身を追加するために考えられることはすべて試しました。

私のファイル構造は次のようになります

 Root
   - File1.dll
   - lib
     - File2.dll
     - File3.dll

NuGet に、このような .nuspec を使用してパックするように指示すると、

<?xml version="1.0"?>
<package >
  <metadata>
    <id>File1.dll</id>
    <version>1.0.0</version>
    <authors>thisguy</authors>
    <owners>thisguysmom</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>This is some library</description>
    <releaseNotes>Porting to NuGet</releaseNotes>
    <copyright>Copyright 2012</copyright>
    <references>
      <reference file="File2.dll" />      
      <reference file="File3.dll" />
    </references>
  </metadata>
</package>

私はその警告を受けます。私が読んでいることから、libフォルダーアイテムは参照として自動的に追加される必要があるため、どのプロジェクトでも参照ノードを定義する必要さえありませんか?

この NuGet の混乱を理解している人はいますか?

4

8 に答える 8

20

私はちょうどこの問題に遭遇しました。Nuget は、次のような構造を期待しています。

root
  - lib
    - net40
      - File1.dll
      - File2.dll
      - File3.dll

.net バージョンに応じて net40 または net20 または net45。

走る

nuget pack yourlibrary.nuspec

それをパッケージ化します。

これにより、ディレクトリのホールセールがパックされ、nupkg に入れられます。エラーメッセージはその時点で消えます。

于 2015-01-14T18:51:44.540 に答える
18

参照する dll は、lib フォルダーの下にある必要があります。警告は、file1.dll が lib の外にあり、パッケージのインストール中に無視されるためです。(その他の専用フォルダは「content」と「tools」)

私はこの構造を使用しました:

Root
  - lib
    - File1.dll
    - File2.dll
    - File3.dll

詳細については、http: //docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Package_Conventionsを参照してください。

于 2012-08-07T23:52:11.490 に答える
15

この記事の時点で最新の NuGet のバージョン (それ以降のバージョンもあると思います) では、.csproj ファイルを .nuspec ファイルと併用してパッケージを作成できます。私たちが行ったことは、.nuspec ファイルを作成し (nuget 仕様を使用してからカスタマイズ)、それをプロジェクトに含めることでした。

カスタマイズされた .nuspec ファイルでは、次のコマンドを使用しました。

nuget pack sample.csproj -IncludeReferencedProjects

その時点で、.nupkg がビルドされ、問題は発生しませんでした。.nu​​pkg ファイルは、通常の出力フォルダー (デフォルトの場合は bin\debug) に表示されます。

于 2015-05-19T19:38:24.267 に答える
12

nuspec ファイルのタグ内に以下を追加することで、別の dll への参照を追加できます。

<package>
   <metadata>
      ...
</metadata>
<files>
 <file src="..\ReferencedFolder\*.*" target="lib\net40\" />
</files>
</package>
于 2014-11-05T05:54:01.540 に答える