VSTO Outlook 2013第三方dll未找到

时间:2014-09-02 18:58:43

标签: c# outlook ms-office vsto outlook-addin

我正在尝试将第三方库添加到使用C#编写的Outlook 2013添加中。它由2个组件组成:.Net包装器和C ++ DLL本身。

我在添加项目中引用了.net包装器,并在构建资源上添加了C ++ lib作为副本。

显然,Office运行时将插件引用的每个.Net库放在一个单独的文件夹中,不包括C ++ lib,因为它没有被引用。并且插件无法找到C ++ lib,因为它应该与执行的dll在同一个文件夹中。

示例插件的dll位置:

C:\Users\UserName\AppData\Local\assembly\dl3\TMGBBYEC.3JC\QE21JQR6.YRW\4a3206fe\4acfc661_ccc6cf01\SomeLibName.dll

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容来计算dll位置。

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;