【问题标题】:VSTO Outlook 2013 third party dll not being found未找到 VSTO Outlook 2013 第三方 dll
【发布时间】:2014-09-02 18:58:43
【问题描述】:

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

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

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

示例插件的 dll 位置:

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

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

【问题讨论】:

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


    【解决方案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;
    

    【讨论】:

    • 谢谢我在程序集上使用 Location 属性,可能正在接收它的 GAC'ish 位置。实际上插件是从 bin/debug 中引用的,检查安装的版本。
    • 并且安装的版本也针对安装文件夹。好的,很明显,c++ lib 是痛苦的根源,因为我们已经设法很好地添加了 Sqlite 本机库......
    猜你喜欢
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多