未找到VSTO文件

问题描述 投票:0回答:1

我正在为MS Outlook整理一个VSTO插件。该插件旨在利用非托管C ++库。可通过C ++ / CLI(CLR)项目访问该库。我正在收到文件未找到直接运行ADDIN时出错。看来该插件在关联的非托管C ++库方面有困难。该库完全包装在C ++ / CLI项目中,使用它不需要了解非托管C ++库。这种情况最奇怪的方面是,如果我从Visual Studio启动ADDIN,则所有文件都将正确加载。我已经验证了所有正在使用的库都在假定的位置。我不清楚为什么外接程序无法启动(如果不从Visual Studio中启动)。

注意:我通过运行一个测试来验证这一点,在该测试中,我创建了一个带有一个类的C ++库,并创建了一个带有从第一个库实例化该类的类的C ++ / CLI库。我尝试从VSTO项目连接到C ++ / CLI库。我收到找不到文件错误。我觉得这是验证/确定正在发生的事情的最简单的测试。

彼得彼得

vsto
1个回答
0
投票

这个问题是根据我在东西放置的位置做出的假设。我有一个将插件加载到目标部署位置的安装程序。所有文件都进入该文件夹。我的想法是,如果所有库都位于同一位置,则应该全部找到它们。这是基于我的想法,即应用程序首先运行并在本地查找文件。我的错误是正在运行的应用程序是Office Outlook-它运行在特定的文件夹位置。当我找不到文件时,我想这不可能是因为文件在一起。但是,在加载ADD Ins时,But Office产品不会查看该Add In所在的位置(对于非托管DLL,托管-托管-可能有所不同)。

最终结果是非托管DLL不可定位,因为它没有出现在Windows的任何海上位置。因此,正确的方法是更新路径以具有该插件的位置。这解决了未找到的问题。令人讨厌的是Visual Studio调试器-似乎在识别从中启动应用程序的DLL方面。一般来说,这很好-VSTO除外,但正在运行的应用程序位于其他地方-但VS仍在项目文件夹位置中查找文件。使它有点不清楚。这不应该发生。 VS调试应该尝试或至少可以配置为在实际场景中运行。如果可以,我当然找不到该配置。

Peter

© www.soinside.com 2019 - 2024. All rights reserved.