ビルド後のイベントでこのコマンドを使用して、プロジェクトから nuget パッケージを生成します。変数%conf%
は正しい構成 (デバッグまたはリリース) に設定され%1
、プロジェクト名 (例: "MyCompany.MyProject") です。
nuget pack -Prop Configuration=%conf% "%1.csproj" -exclude *.sql -IncludeReferencedProjects
このパッケージは、私たち自身の使用のみを目的としており、nuget で公開されることはありません。それは私たちのプライベートリポジトリで終わります。
プロジェクトには、 と に設定されているファイルがありgenerate action : content
ますcopy local : always
。(私の Visual Studio はフランス語なので、翻訳が 100% 確実ではありません)。名前を付けましょうimportantfile.xml
。
生成されたパッケージでは、次の構造になります。
- content
- importantfile.xml
- lib
-net45 (.NetFramework,Version=v4.5)
-MyCompany.MyProject.dll
importantfile.xml
これは問題ありません。このファイルは重要なので、パッケージにデプロイしたいのです。
パッケージを別のプロジェクトにインストールするimportantfile.xml
と、プロジェクトのルートにデプロイされます。それで大丈夫です。しかし、それは設定されていませんcopy local : always
。
パッケージをインストールするこのプロジェクトに参加する必要importantfile.xml
があります。copy local : always
どうすればそれを達成できますか?
ノート :
パッケージをインストールした直後にファイルを設定できcopy local : always
ますが、それは大したことではありません。パッケージの後の更新でこのプロパティがそのままになるのであれば、私はそれを受け入れますが、そうではありません。パッケージを更新すると、 (ここに記載されているように)copy local
にリセットされます。never
プロジェクトのフォルダーに nuspec ファイルがあります。
<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
<copyright>Copyright 2014</copyright>
<tags>some random tags</tags>
</metadata>
</package>