【问题标题】:Outlook 2007 Addin C# - Startup PathOutlook 2007 插件 C# - 启动路径
【发布时间】:2011-06-06 14:38:51
【问题描述】:

我在 Outlook 2007 加载项中使用了一些 Win32 dll。

所以我添加了 dll,构建操作“内容”并复制到本地目录。

要获得它们的路径,我通常会使用:

Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyDll.dll");

当由 ClickOnce 发布时,Assembly.GetExecutingAssembly 没有给我所有 ClickOnce 文件的标准路径。我的文件在 %appdata%..\Local\Apps\2.0 中,但程序集在 %appdata%..\Local\assembly 中。

有没有更好的方法从 ClickOnce 部署的 Outlook 加载项中获取这些 dll 的路径?

【问题讨论】:

  • 也尝试过 Application.StartupPath,但这为我提供了 Outlook exe 的路径。

标签: c# .net outlook clickonce outlook-addin


【解决方案1】:

这段代码现在给了我正确的路径:

string path = Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "MyDll.dll");

我在解析命令行参数时不得不使用 SetupInformation,一些调试导致我找到了这个属性。

如果它给我带来任何麻烦,我会回复,因为我们需要在几台机器上安装,看看会发生什么。

【讨论】:

  • 您是否使用设置项目来部署它?可以在文件系统中指定一个文件夹,直接指定路径。
  • 这是 ClickOnce,它在我的问题中说。
【解决方案2】:

您是否尝试将它们添加为参考?如果您以这种方式放置它们,我相信加载项应该知道位置。只需查看在您添加 Office 互操作(和其他引用)时它是如何处理它们的 - 无需指定,只需在您的代码中引用它们即可。

【讨论】:

  • 这些是 .Net 参考。 Win32 dll 无法做到这一点。
  • 仍然是 c# 编程的新手。我脑海中闪现的第一件事。
猜你喜欢
  • 1970-01-01
  • 2011-08-27
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 2013-11-01
相关资源
最近更新 更多