在我在这里问了一个问题并获得了一些很好的答案后,我一直坚信使用Windows安装文件(msi)来安装我的新窗体应用程序(谢谢大家): https://serverfault.com/questions/97039/net-application-deployment
现在我有一个不同的问题:
我的应用程序需要访问SQL Server以向用户提供数据,这意味着连接字符串必须存储在客户端的app.config文件中。
我该如何处理?
在安装过程中,用户是否输入了该数据库的连接字符串? 他们如何获得连接字符串?在来自管理员的电子邮件中? 如果管理员想要使用SQL身份验证并且需要将用户信息放在连接字符串上,该怎么办?
所以你知道,该应用程序将通过互联网销售,因此我无权访问管理员或网络。
有什么建议吗?
提前致谢。
答案 0 :(得分:3)
我认为你应该看一下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
答案 1 :(得分:0)
请勿在安装中执行此操作 - 首次运行应用程序并在以后允许更改时执行此操作。从MSI执行此操作可能非常重要。从应用程序运行此程序比从模拟或系统帐户自定义操作运行它更容易调试,并且更不容易出错。在安装过程中出错也很尴尬。如果无法连接,则无法完成安装,如果您支持静默安装并通过属性输入连接字符串,则可能无法以无提示方式告知用户。这些只是一些潜在的问题。如果您从应用程序执行此操作,用户可以随时更改他们关于连接方式,凭据等以及连接字符串的其他详细信息的想法,而无需重新安装应用程序。