3

.nupkgnuget パッケージ ファイルを作成するとき、OctoPack は信じられないほど簡単であることがわかりましたが、.nuspecファイルを含めて (現在は obj/octopackage などの別のフォルダーに配置されています)、すべての dll を a 内に配置してlib/net452 folder、一般的な構造は次のようになります。

ここに画像の説明を入力

現在、 lib/net452 フォルダーにある必要_relsがあるものはすべて、とと共にルートに配置されているだけで、package前述のように.nuspecファイルがありません。

ドキュメンテーションが少しまばらであるか、デバッグの精神的なもやでこれを行う方法を完全に見逃していました。具体的には、コンパイルされた出力をファイル内に配置する場所を OctoPack に指定する方法を知っている人はい.nupkgますか?

4

1 に答える 1

3

NuGet パッケージを作成するには、OctoPackではなく nuget.exe を使用する必要があります。その理由をすぐに説明します。

この.nuspecファイルは、NuGet パッケージの「設計図」として機能します ( .nupkg)。したがって、簡単な答えは、要素の属性を.nuspec使用して、ファイル内の場所を指定するだけです。詳細はNuGet サイトにありますが、次のようになります。target<files>

<files>
  <file src="bin\$configuration$\*.dll" target="lib\net452\" />
</files>

ビルド後の手順でnuget.exeを呼び出す方法はいくつかあります。多くは NuGet サイトでも説明されています。

OctoPack は、nuget.org のパッケージを作成するためのものではありません。Octopus Deploy 用のパッケージを作成するために特別に設計されています。次の 2 つの方法のいずれかでパッケージを作成します。

  1. ファイルが存在する場合web.config、OctoPack はプロジェクトが Web プロジェクトであると想定し、それに応じて出力をパッケージ化します。プロジェクト ファイルを使用して、コンテンツとしてマークされているアイテムとマークされていないアイテムを判断します (ただし、常に web.config 変換ファイルを取得します)。
  2. それ以外の場合、OctoPack はプロジェクトが実行可能ファイルまたはコンポーネントであると想定し、出力フォルダー (通常は\Debug\binまたは\Release\bin) で見つかったものを単にパックします。これは、あなたが見ている動作です。

OctoPack は内部で nuget.exe を使用するため、.nuspecファイルは上記の両方のケースをオーバーライドします。したがって、 OctoPack を使用して NuGet パッケージを作成することもできますが、 nuget.exeを使用する方が適切です。

于 2016-03-26T01:37:52.663 に答える