2017-08-07 10 views
0

私はNugetパッケージ開発を初めて利用しています。プロジェクトのルートレベルにファイルを配置する簡単なパッケージをいくつか作成しました。しかし、これらのパッケージは箱から出てきます。ターゲットプロジェクト内の特定のフォルダにファイルを配置する必要があります。以下の例を参照してください。Nugetはインストール中に特定の出力ディレクトリにフォルダ構造またはファイルを作成できますか?

LoginController.csは、クライアントmvc projectの「Controllers」フォルダに配置されます。 Login.cshtmlは、クライアントmvcプロジェクトの「Views/Login」フォルダに配置されます。

この特定の出力を達成する方法はありますか?いつでも私はjavascriptライブラリをインストールするたびに、デフォルトで "Scripts"フォルダにデフォルト設定されているので、Nugetランタイムでビルドされているか、パッケージのパブリッシャがその場所を使用するように指示しています。

答えて

1

NuGetには、PowerShellスクリプトを記述してパッケージに含めるための3つのフックが用意されています。

  • Init.ps1は - パッケージは、第一の溶液レベル
  • Install.ps1に設置されている場合、これは動作します - それは、プロジェクトレベル
  • Uninstall.ps1にインストールされるとき、これが実行される - パッケージがアンインストールされたときに、これが実行さ

それはInstall.ps1Uninstall.ps1がもはやVisual Studioで2017年

をサポートしていないことに注意することが重要です

<?xml version="1.0"?> 
<package > 
    <metadata>...</metadata> 
    <files> 
    <file src="scripts\NugetScripts\Init.ps1" target="tools\Init.ps1" /> 
    </files> 
</package> 

あなたPowerShellのファイルは、以下のパラメータの宣言が必要になります:これらのファイルを追加するには

、あなたは、単にあなたのNuSpecが、これに似たファイルを更新し、そこから

param($installPath, $toolsPath, $package, $project) 

を、あなたができるようになりますプロジェクトを修正し、ファイルをあなたのハートのコンテンツに追加/編集します。ここには、追加の詳細を提供するblog postがありますが、Googleの周りにたくさんの例があります。スクリプトの中で何をしたいのかだけに依存します。