|
分類:[.NET 全般]
こんにちは、いつもお世話になっています。
VisualStudioのデザイナはデザイン画面の構築の際、そのFormのコンストラクタやLoadイベントを読み込むようです。 またこのとき、必要なアセンブリもロードされているようです。
実はその別アセンブリでApplication.StartupPathなどを利用しているんですが、このパスがVisualStudioの実行ファイルであるdevenv.exeの 場所を指しており、実際にアプリケーションを実行するときのパスと異なるため、具合が悪い状態となっています。
具体的には実行ファイルのある場所にフォルダを作成するのですが、VistaだとUACが働き、VisualStudioがインストールされたフォルダ(c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE)にアクセスできないため、例外が発生します。 つまり、デザイン画面が表示できなくなります。
現状ではその別アセンブリ側で例外を握りつぶすまたはUACを切るといった形で対処しているのですが、「VisualStudioから実行しているなら・・・」みたいな条件分岐をさせた方が良いかなと思う次第です。
これがわかるフラグはあるでしょうか?また代替手段があれば教えてください。
|