【问题标题】:Connection string during installation安装期间的连接字符串
【发布时间】:2009-12-28 14:38:55
【问题描述】:

在我在这里问了一个问题并得到了一些很好的答案之后,我被说服使用 Windows 安装文件 (msi) 来安装我的新 Windows 窗体应用程序(谢谢大家): https://serverfault.com/questions/97039/net-application-deployment

现在我有一个不同的问题:

我的应用程序需要访问 SQL Server 以向用户提供数据,这意味着连接字符串必须存储在客户端的 app.config 文件中。

我应该如何处理?

在安装过程中,用户输入了该数据库的连接字符串? 他们如何获得连接字符串?在来自管理员的电子邮件中? 如果管理员想要使用 SQL 身份验证并且需要将用户信息放在连接字符串中怎么办?

所以你知道,该应用程序将通过互联网销售,所以我无权访问管理员或网络。

有什么建议吗?

提前致谢。

【问题讨论】:

  • 微星是什么意思?它是一种技术?你打算用什么设置?
  • MSI 是 Windows 安装程序...
  • abmv 询问的是您使用什么工具来构建 MSI?只是内置的 Visual Studio 安装项目? MSI 可以通过多种工具打包。
  • 是的,我将使用内置的 VS 安装程序。或者,如有必要,任何其他更好的产品。

标签: windows-installer connection-string


【解决方案1】:

我认为您应该看一下 WiX 3.0 (wix.sourceforge.net),但要为学习曲线做好准备,因为您完全用 XML 定义您的 MSI。

您可以使用 dark.exe(WiX 的一部分)对现有 MSI 进行逆向工程以启动。

一旦您的基本安装程序使用固定连接字符串,您就可以使用 WiX 定义用于收集连接数据的用户界面。然后,自定义操作 (CA) 需要将此数据作为安装程序的一部分写入 .config 文件。这已经做过很多次了,看;

wix custom dialog for config edit http://www.rrreese.com/Article/Show/WiX%20SQL

【讨论】:

  • Ryan,非常好的答案,但我试图避免使用 Wix,因为你提到的学习曲线。感谢您的链接。
【解决方案2】:

不要在安装时执行此操作 - 在应用程序第一次运行时执行此操作,并允许稍后进行更改。从 MSI 执行此操作并非易事。从应用程序运行它比从模拟或系统帐户自定义操作运行它更易于调试且更不容易出错。在安装过程中出错也很尴尬。如果他们无法连接,他们将无法完成安装,如果您支持静默安装并通过属性输入连接字符串,那么您可能会静默失败,无法告诉用户。这些只是一些潜在的问题。如果您从应用程序执行此操作,则用户可以随时改变他们对连接方式、凭据等以及连接字符串的其他详细信息的想法,而无需重新安装应用程序。

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-29
    • 2015-08-19
    • 1970-01-01
    • 2014-03-10
    • 2011-04-16
    • 1970-01-01
    相关资源
    最近更新 更多