【问题标题】:How can I deploy an outlook addin with an sqlite database included into the project?如何部署项目中包含 sqlite 数据库的 Outlook 插件?
【发布时间】:2019-11-15 02:19:55
【问题描述】:

我正在尝试在用户的电脑上显示 Outlook 插件。这个插件有一个小数据库,似乎当扩展开始与db通信时,它不起作用。在 Visual Studio 中我没有遇到任何问题,所以我想问题在于为用户创建可执行文件以安装扩展程序时

使用 CLickOnce,插件安装并显示在用户的 Outlook 中,但当它必须与数据库交互时,它不起作用。 我也尝试添加一个安装项目,其中包含数据库,但这种方法甚至没有在客户端的 Outlook 中显示插件

数据库位于主目录的一个文件夹中,如下:

在 app.config 我使用这个相关路径:

connectionString="Data Source=|DataDirectory|\DB\pluginDB.db;Version=3;"

和数据目录:

string Path = Environment.CurrentDirectory; string[] appPath = Path.Split(new string[] { "bin" },StringSplitOptions.None); AppDomain.CurrentDomain.SetData("DataDirectory", appPath[0]);

这适用于视觉工作室

【问题讨论】:

  • 数据库在哪里? (扩展名为.sqlite3、.sqlite、.db 的文件)。您使用的是哪个扩展程序?您是否在插件中指定文件的完整路径?插件可能期望数据库与可执行文件位于同一文件夹中。运行 Outlook 插件安装在不同的位置,它没有找到数据库。数据库是在本地机器上还是在网络驱动器上?
  • 用户可以在记事本中打开文件吗?该文件可能没有正确的凭据供用户读取。
  • 我已经用更多信息更新了帖子
  • 你安装软件的时候有BIN文件夹吗?当你从 c# 运行时,总是有一个 bin 文件夹。如果你把可执行文件放在另一台没有 VS 的机器上,通常没有 BIN。

标签: c# vsto outlook-addin add-in office-addins


【解决方案1】:

我也尝试添加一个安装项目,其中包含数据库,但这种方法甚至没有在客户端的 Outlook 中显示插件

Deploy an Office solution by using Windows Installer 文章介绍了部署 Office 解决方案所需的步骤。确保您完成了文章中描述的所有步骤。

使用 CLickOnce,插件安装并显示在用户的 Outlook 中,但当它必须与数据库交互时,它不起作用。

插件似乎无法在用户计算机上找到数据库文件。我建议添加任何日志语句以查看目标机器上发生的情况。无论如何,尝试使用以下文件夹而不是Environment.CurrentDirectory one:

  public static string AssemblyDirectory
  {
     get
     {
        string codeBase = Assembly.GetExecutingAssembly().CodeBase;
        UriBuilder uri = new UriBuilder(codeBase);
        string path = Uri.UnescapeDataString(uri.Path);
        return Path.GetDirectoryName(path);
     }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多