2012-01-31 4 views
8

を除外:NuGet:</strong>を構築し、それぞれにプライベートNuGetパッケージを作成するの.pdbファイルを含めると、私は<strong>にCI-構築に次の行を取り入れてきた「コンテンツ」フォルダ

nuget pack C:\Projects\Test\Test.vbproj -OutputDirectory \\nas1\NuGet 

AssemblyInfoバージョン番号を含む)が読み込まれ、NuGetパッケージが作成されます。
パッケージにはの.pdbファイルには "コンテンツ"フォルダ(したがって 'lib'のみ)が含まれていません。

どのようにすればいいですか?にコマンドを変更しますか?

答えて

10

残念ながら、コンテンツファイルの両方をプロジェクトからパッキングする際に.pdbファイルを除外することはできません。あなたはどちらか一方をすることができます。

まず、nuspecファイルを作成します(nuget specコマンドを使用すると、これが迅速に実行されます)。これをプロジェクトと同じ場所に配置します。プロジェクトをパックすると、NuGet.exeはそのスペックをプロジェクトの情報の補足として扱います。

コンテンツフォルダを削除するには、.nuspecファイルも含むプロジェクトをパッケージ化するときに、空の<files />ノードが指定されていれば、プロジェクトに存在するコンテンツファイルは不要となります。

は、デバッグファイルを含め、あなたの仕様には、このような何かを追加するには:

<files> 
    <file src="bin\*.pdb" target="lib\net35\" />  
    </files> 

が、それはあなたが持っているコンテンツを行うツールを言うだろうし、それがすべてのファイルを追加します、 同じように。あなたのプロジェクトにはおそらくsymbol packageを作ることができます。

別のオプションは、スペック(nuget pack Test.nuspec)からのみ作成し、含めるファイルを正確に指定することです。時間がかかりますが、パッケージの内容を完全に制御することができます。

+3

これにいくつかのより多くの思考を与えた後、私はそれがコマンドでこれを実行することは技術的には可能だと仮定します上記のように.pdbを指定して-excludeフラグを使用して、必要のないファイルタイプを省略します。しかし、 "コンテンツ"に含まれるdllやpdbでない単一のファイルタイプをすべて除外する必要があります。これは実際的ではないかもしれません。 たとえば、パッケージからconfig、xml、およびtransformファイルを除外します(これらは.nuspecで設定されているため、pdbファイルをインクルードします)。 'nuget pack -Exclude ** \ *。config; * * \ *。xml; ** \ *。変形 ' – brainiac10

+0

空の '' '' 'ノードを持つコンテンツフォルダを削除するための+1。 –

1

パッケージ化したくないコンテンツファイルでは、プロジェクトに「コンテンツ」というビルドアクションが必要ですか(Visual Studioのファイルのプロパティウィンドウで、 )?

ビルドアクションを「なし」(または他の何か)に変更しても問題がなければ、コンテンツフォルダには入りません。

0

次の解決策は、ソースファイルのインクルードを気にしない場合に有効です。コンテンツファイルを無視するように があなたのnuspecに、このような空のノードを追加します。その後、

<files> 
</files> 

そして実行します。

nuget pack C:\Projects\Test\Test.vbproj -Symbols 
nuget push *.symbols.nupkg -Source \\nas1\NuGet 
+0

空のソリューションは、もう私のために働いていません。 –

関連する問題