質問
NUGETパッケージを作成しています。ユーザーがこのパッケージをインストールしたときに追加されるEXEファイルとConfigファイルに2つのファイルを入れました。
さらに、これら2つのファイルのVSプロジェクトのプロパティを変更します。
パッケージを構築するときに何をする必要がありますか?
解決
「プロパティの適用変更」と言うと、最後に変更された時間、隠れフラグなどのファイルシステムのプロパティを意味します。?
もしそうなら、実行されているPowerShellスクリプトのセット(それらがあなたのパッケージに存在する場合)これを行うために使用することができます。パッケージを構築すると起こりませんが、誰かがパッケージをインストールしたときに実行されます。これは、ユーザーがビューのポイントしているのと同じ効果を持つ必要があります。あなたはおそらく Init.ps1
または Install.ps1
のどちらかを望んでいます。
rel=">パッケージのインストール中にPowerShellスクリプトの自動実行の
パッケージには、いつでも自動的に実行されるPowerShellスクリプトを含めることができます。 パッケージがインストールまたは削除されます。 NUGETは自動的にスクリプトを実行します 次の規則を使用してファイル名に基づく:
Init.ps1
解決策にパッケージがインストールされたときに実行されます。
- 同じパッケージが追加された場合 プロジェクトソリューションでは、スクリプトはそれらの間に実行されません インストール
- 解決策があるたびにスクリプトも実行されます 開いた。たとえば、パッケージをインストールした場合は、Visual Studioを閉じます。 その後、Visual Studioを起動してソリューションを開き、
Init.ps1
を開きます。 スクリプトが再び実行されます。- PROFACDICETAGCODE プロジェクトにパッケージをインストールすると実行されます。
- 同じパッケージがソリューション内の複数のプロジェクトにインストールされている場合は、 パッケージがインストールされるたびにスクリプトが実行されます。
- Packageには、
Install.ps1
のContentまたはlibフォルダにファイルが必要です。ツールフォルダに何かを持つだけでこれをオフにしません。- あなたのパッケージに
Install.ps1
も持っている場合、init.ps1
はinstall.ps1
の後に実行されます。init.ps1
パッケージがアンインストールされるたびに実行されます。- これらのファイルは、パッケージのToolsディレクトリに配置する必要があります。
- ファイルの上部にあるこの行を追加します.
Uninstall.ps1
param($installPath, $toolsPath, $package, $project)
はへのパスです パッケージがインストールされているフォルダ$installPath
はTOTへのパスです パッケージがインストールされているフォルダ内のツールディレクトリ$toolsPath
は、パッケージオブジェクトへの参照です。$package
はAです ENVDTEプロジェクトオブジェクトへの参照し、プロジェクトを表します。 パッケージがインストールされています。注:これは$project
ではNULLになります。に その場合、それは特定のプロジェクトへの参照を持っていません ソリューションレベルで実行されます。このオブジェクトのプロパティは定義されています MSDNのマニュアルで。- スクリプトの作成中にConsoleで
Init.ps1
をテストしているときは、$project
に設定できます。
所属していません StackOverflow