私はVSIXパッケージにXMLを介してカスタムデザイナーのカップルを持っています。このパッケージには、カスタムビルドタスクを使用してビルド時に自動的にコードを生成する風味のプロジェクトシステムがあります。VSIX Flavoredプロジェクトのカスタム.targetファイルインポートの問題
私が直面しなければならなかった最初の課題は、プロジェクトテンプレートで.targetsファイルをインポートすることでした。パッケージのバージョンが変更され、vsixインストーラがターゲットマシンのバージョンアップされた場所にドロップするため、プロジェクトテンプレートの.targetsファイルへの完全修飾パスを指定できません。私が解決できる方法は、パッケージのルートパスを持つユーザー環境変数を追加し、この環境変数をプロジェクトテンプレートで参照して.targetsファイルをインポートすることでした。期待通りに動作します。
ここで注意すべき点は、VSIXの展開プロセス中にこの環境変数をどのように作成できるかです。私はRegistrationAttribute
から派生したカスタム属性でパッケージクラスをデコレートしようとしました。 Environment.SetEnvironmentVariable()
を実行するためにRegisterメソッドをオーバーライドし、私の開発ボックスでプロジェクトを実行するときにのみ動作します。どうやら、VSIXInstall.exeはインストール中に属性レジスタを実行しても構いません。
誰かがこの問題を解決する方法を提案できれば嬉しいです。私は時間が不足していると、既に任意の成功:(
アーロン、これは今VS2013で簡単ですか? VSIX、カスタムターゲット/ msbuildで状況が改善されましたか? – Vin