2005年11月29日

VS2005でCustom Actionを定義したら・・・

現在、目下VS2005のアドインをどうやって作るか勉強中。
今日は、とりあえず適当なコードを作って、どうやってインストーラを作るか勉強してみた。

VS2005からはアドインの登録方法がレジストリからXMLファイルに変更になり(旧来の方法も使える模様)、以下のフォルダにそのXMLファイルを配置しろとのこと。

・All User
C:\Documents and Settings\All Users\Visual Studio 2005\Addins
・自分のみ
C:\Documents and Settings\<username>\My Documents\Visual Studio 2005\Addins
参考:MSDN2 - Add-In Registration

MSDN2 - How to: Upgrade Visual Studio .NET 2003 Add-ins to Visual Studio 2005 by Using XML Registration (Managed)では、
<drive>:\Document and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins
または
<drive>:\Document and Settings\yourusername\Application Data\Microsoft\MSEnvShared\Addins

と記載されている。どっちが正しいのやら・・・
どっちにしても、XMLファイルにはDLL名をフルパスで記載してあげないといけないのでたとえば、Program Filesの下にインストールしたかったらインストールしたあとにXMLを編集しないといけない。

となれば、Custom Actionの出番ということで以下のようにしてみた。
1.新しい項目の追加でInstaller Classを追加
2.Install / Commit / Rollback / Unintallのメソッドをオーバーライド
3.Setup ProjectでCustom Actionを追加

で、試しにコンパイルして、C:\Program Files\以下にインストールしてみようとしたら・・・。
file:///C:\Windows\System32\Files\AppName\ClassLibrary1.dllが見つかりませんというFileNotFoundExceptionが・・・。

VS2003はこれで普通にいけたのに・・・。
でも、エラーをよっく見てみるとFilesより先はインストールした場所を指そうとしている。
もしかして・・・、パスの解決間違ってる?
C:\Windows\System32\からインストールした場所に移動しようとして、間の空白でひっかかってるとか・・・。文字列をダブルコーテーションでくくらずに使おうとしてるとか・・・。

とりあえず、空白が入らないパスで試してちゃんと動くようならバグの可能性もあるかもしれないな〜。
posted by libaty at 00:16| 東京 🌁| Comment(0) | TrackBack(0) | VS-AddIn | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック