4

Visual Studio 2010拡張機能(VSIXプロジェクト)を開発して、EntityFrameworkデザイナーのエンティティにいくつかのプロパティを追加しています。MEF検出に適切なクラスを登録することに加えて%ProgramFiles%\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes、拡張機能のインストール時にT4インクルードファイルをフォルダーにコピーしたいのですが、その方法がわからず、VSIXプロパティページに表示されないようです。このための任意のオプション。

だから私の質問は:VSIXプロジェクトがインストールされているときに特定のファイルを特定の場所にコピーする方法はありますか?

4

1 に答える 1

5

VSIX のみを使用する、いいえ、ありません。

VSIX パッケージの内容全体は、インストール中にローカルの拡張機能ディレクトリに解凍されるだけです。ファイルのインストールに関してはこれで終わりです。

どこにでもコピーしたいものは何でも、VSIX インストーラーの外部で処理する必要があります。たとえば、別のインストーラーを使用します。または、別の例として、プラグインの最初の実行時に、package.Initialize() のどこかで、問題のファイルが適切な場所に存在するかどうかを確認し、存在しない場合はそこにコピーします。

もちろん、ProgramFiles ディレクトリに書き込みたい場合は、UAC 保護という別の障壁が立ちはだかります。そこに書き込むには、プラグインが昇格で実行する別の実行可能ファイルが必要になり (その間にユーザーに許可を求めるなど)、そこにファイルをコピーできるのはそれだけです。もちろん、誰もが常に VisualStudio を「管理者として」実行し、UAC とユーザーの涙を単に無視すると喜んで仮定しない限り.

于 2012-04-10T12:15:52.800 に答える