2013-02-08 14 views
5

間違った場所にパックされています追加のコンテンツフォルダがまだビューに追加されていたにもかかわらず、App_Startは含まれていませんでした...下記の説明を参照してください)Nugetファイルは、私は、ファイル仕様とnugetのspecファイルを持っている

プロジェクト自体は

私には奇妙な行動のように見える何
\<root> 
|_ readme.txt 
|_ content 
     |_ Views 
     | |_ Home 
     |   |_ <viewname>.cshtml 
     |   |_ <viewname2>.cshtml 
     |_ App_Start 
      |_ <PreprocessFilename>.cs.pp 

しかしNuGetパックは構造を持つzipファイル生成していることである。nuget包装ファイルパスに関してので

\<root> 
|_ readme.txt 
|_ content 
     |_ content 
     | |_ Views 
     |   |_ Home 
     |    |_ <viewname>.cshtml 
     |    |_ <viewname2>.cshtml 
     |_ App_Start 
     | |_ <PreprocessFilename>.cs.pp 
     |_ readme.txt 

を:

  • readme.txtが2つの場所で重複しているのはなぜですか?
  • ビューに2番目の 'コンテンツ'サブフォルダが表示されるのはなぜですか? (App_Startはそうではありません)
  • コンテンツフォルダのコピーを実際の構造と正確に反映させるにはどうしたらいいですか?
  • は、どのように私はそれが関連している場合は、私はパッケージを作成するために.csprojファイルを使用しています

nuspecファイルがより多くの「保守性」にするために<file src="content\*" target="content" />ディレクティブに戻ることができます。

+0

Alex - readme.txtファイルが重複しているという問題を解明したことはありますか? – Randy

答えて

0

私は同じ問題を抱えています、私はそれを回避することができましたが、ちょっとハックIMO。私は私のプロジェクトは、私が最終的なパッケージで予定のディレクトリツリーを持つことができるように、よりよい解決策を見てみたいが、私は今日の仕事にこれを必要なので.......私は周りを取得するためにしなければならなかったものを

これは、私はそれがで終わると思ったサブディレクトリに設定した目標に、ルートレベルでコンテンツのディレクトリ外と場所にあるすべてのサブディレクトリを引っ張った。

<file src="Scripts\" target="content\Scripts" /> 
0

行動があると思われるときにその.csproject nuget pack MyProject.csprojをパックすると、プロジェクト構造に合わせてパッケージが配置され、次にnuspecを参照して追加の手順を確認します。しかし、あなたのnuspecを持たせる方法がないようです。は、プロジェクトによってパックするときに前のステップでのコンテンツを削除します。デフォルトのプロジェクト構造は、パッケージ内の不要なコンテンツにつながる場合

したがって、あなたの代わりに.nuspecによって直接包装に頼る必要があります。 nuget pack MyProject.nuspec次に、nuspecで指定されたコンテンツのみを取得します。このコンテンツでは、コンテンツを正確に定義することができます。

あなたはほとんどが希望の構造を持っている大きなプロジェクトを持っている場合、最初に、プロジェクトからパッケージをビルドしますが、後で自分のニーズに合うように調整し、このパッケージからnuspecを抽出するためにNuget Package Explorerを使用すると便利かもしれませんそしてあなたは最終的にそれに対してパックする。そうすれば、最初からビルドする必要はありません。

編集

または...あなたはいくつかの特定のファイルを無視し、その意志.nuspecでこれらのファイルのカスタム仕様を書くためにそれを伝える.csprojに-Exclude parameterで梱包を実行することができます追加データのために自動的に読み込まれます。

個人的には、.nuspecをパッケージの唯一の定義として持つことが個人的にはわかります。

関連する問題