C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

プラグインはどこにおけばいい?


(過去ログ 89 を表示中)

[トピック内 1 記事 (1 - 1 表示)]  << 0 >>

■53363 / inTopicNo.1)  プラグインはどこにおけばいい?
  
□投稿者/ れい (957回)-(2010/09/11(Sat) 04:39:48)

分類:[.NET 全般] 

動的に機能を拡張できる、プラグインと呼ばれる機能をもつプログラムがあります。
VBScriptやJavaScriptのようなスクリプト言語で記述されたファイルを読み込んで拡張するものもありますが、
DLL形式のファイルや、中身はDLLで拡張子だけ違うファイルを使う場合が多いかと思います。

そのプラグイン、特にDLL形式のプラグインの保存場所をどこにすればよいのかで悩んでいます。

Designed for Windows XP Application Specification
http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=209E3D65-F0BE-4EEF-8602-73BB9BC29D54
The Windows Vista Logo Program
http://msdn.microsoft.com/en-us/windows/bb981196.aspx
The Windows 7 Software Logo Program
http://msdn.microsoft.com/en-us/windows/dd203105.aspx

などのガイドラインその他の資料では、プログラムの本体およびデータは
SHGetFolderPathもしくはSHGetKnownFolderPathを用いて該当するフォルダを取得して使うことになっています。

プラグインはユーザー毎に異なる可能性があることを考慮するとユーザー毎のストレージが必要です。
また、DLL形式のプラグインは実行形式ですので、実行可能なファイルが納められる場所がよいと思います。

しかし、XP、Vistaに関してはユーザー毎のプログラムフォルダがありません。
7では「FOLDERID_UserProgramFiles」がありますが、
ここはユーザー毎にプログラム本体を置く場所で、プラグインをおいてもいいものかわかりません。
置き方もよくわかりません。

最近はDLL読み込みに関して脆弱性も報告されています。
http://jvn.jp/cert/JVNVU707943/
そのため、AppDataやCSIDL_PERSONAL(FOLDERID_Documents)のように、
通常のファイルを置く場所を使うのも問題があるように思います。

プラグインのDLLがプログラムであり且つデータであるのが原因なのですが…

皆さんはどのようにしているのでしょうか?
どのようにしたらとよいと思いますか?

考えと、理由を教えてください。
よろしくお願いします。

#土日は回答が少ないですよね。皆さん業務中に回答しているのかなぁ。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -