NuGetパッケージを作成しています。content
ユーザーがこのパッケージをインストールしたときに追加されるexeファイルとconfigファイルの2つのファイルをフォルダーに入れました。
さらに、これら2つのファイルのVSプロジェクトのプロパティを変更したいと思います。
パッケージをビルドするときに、そのために何をする必要がありますか?
NuGetパッケージを作成しています。content
ユーザーがこのパッケージをインストールしたときに追加されるexeファイルとconfigファイルの2つのファイルをフォルダーに入れました。
さらに、これら2つのファイルのVSプロジェクトのプロパティを変更したいと思います。
パッケージをビルドするときに、そのために何をする必要がありますか?
「プロパティ変更を適用する」とは、最終変更時刻、非表示フラグなどのファイルシステムプロパティを意味しますか?
その場合、実行されるPowerShellスクリプトのセットがあります(パッケージに存在する場合)。これを使用してこれを行うことができます。パッケージをビルドするときは発生しませんが、誰かがパッケージをインストールするときに実行されます。これは、ユーザーの観点からは同じ効果があるはずです。おそらくまたはのいずれかがInit.ps1
必要Install.ps1
です。
NuGetドキュメントでのパッケージのインストールおよび削除中にPowerShellスクリプトを自動的に実行することから:
パッケージには、パッケージのインストールまたは削除時に自動的に実行されるPowerShellスクリプトを含めることができます。NuGetは、次の規則を使用して、ファイル名に基づいてスクリプトを自動的に実行します。
Init.ps1
パッケージがソリューションに初めてインストールされたときに実行されます。
- 同じパッケージがソリューション内の追加のプロジェクトにインストールされている場合、それらのインストール中にスクリプトは実行されません。
- このスクリプトは、ソリューションが開かれるたびにも実行されます。たとえば、パッケージをインストールし、Visual Studioを閉じてから、Visual Studioを起動してソリューションを開くと、
Init.ps1
スクリプトが再度実行されます。Install.ps1
パッケージがプロジェクトにインストールされたときに実行されます。
- ソリューション内の複数のプロジェクトに同じパッケージがインストールされている場合、パッケージがインストールされるたびにスクリプトが実行されます。
- パッケージ
Install.ps1
を実行するには、コンテンツまたはlibフォルダーにファイルが含まれている必要があります。ツールフォルダに何かがあるだけでは、これは始まりません。- パッケージにもが含まれている場合は、の後
init.ps1
にinstall.ps1
実行されinit.ps1
ます。Uninstall.ps1
パッケージがアンインストールされるたびに実行されます。- これらのファイルは、パッケージのツールディレクトリにある必要があります。
- ファイルの先頭に、次の行を追加します。
param($installPath, $toolsPath, $package, $project)
$installPath
パッケージがインストールされているフォルダへのパスです$toolsPath
パッケージがインストールされているフォルダ内のツールディレクトリへのパスです。$package
パッケージオブジェクトへの参照です。$project
EnvDTEプロジェクトオブジェクトへの参照であり、パッケージがインストールされているプロジェクトを表します。注:これはでnullになりますInit.ps1
。その場合、ソリューションレベルで実行されるため、特定のプロジェクトへの参照はありません。このオブジェクトのプロパティは、MSDNドキュメントで定義されています。- スクリプトの作成中にコンソールでテストする場合は
$project
、次のように設定できます。$project = Get-Project