2016-12-22 5 views
0

DllImportを使用してカスタムDLLをロードする必要があるOutlookアドインがあります。プロジェクトリソースにdllを含め、プロジェクトが「公開」されると、リソースフォルダにコピーされます。DllImportで使用するOutlookアドインでリソースとして含まれるDLLの場所を確認するには

私の問題は、ユーザーがアドインをインストールした後、リソースに含まれているDLLがどこにあるのかわかりません。私が知っていれば、その場所を現在の検索パスに追加することができ、すべてが機能します。

Environment.SetEnvironmentVariable("PATH", Environment.GetEnvironmentVariable("PATH") + ";" + dllDirectory); 

誰も解決策を持っているのですか、それとも私はこのすべてについて間違っていますか?

答えて

1
//use CodeBase instead of Location because of Shadow Copy. 
string codebase = Assembly.GetExecutingAssembly().CodeBase; 
var vUri = new UriBuilder(codebase); 
string vPath = Uri.UnescapeDataString(vUri.Path + vUri.Fragment); 
string directory = Path.GetDirectoryName(vPath); 
if (!string.IsNullOrEmpty(vUri.Host)) directory = @"\\" + vUri.Host + directory; 
DllLocation = Path.Combine(directory, "Resources\\MyDll.dll"); 
+0

ありがとうございました!それは私が探していたコードスニペットでした。 –

+0

これがあなたの質問に答えるならば、そのように印を付けてください。ありがとう! –

関連する問題