安装时如何指定sql server的连接字符串

我在客户端安装c#windows应用程序。 在应用程序中,我需要一个连接字符串。 如何在安装时进行配置。 另外,我想用我的应用程序设置打包sql express设置和.Net Framework设置。 这可能吗?

如果您使用的是Visual Studio安装程序,则可以向安装程序添加自定义页面,并添加处理该自定义页面结果的自定义操作。 例如,在VS2010 Professional中:

  1. 创建Visual Studio安装程序安装项目
  2. 将项目输出添加到安装程序,添加快捷方式,然后根据自己的喜好配置安装程序。 ( 即现在假设它不会为你配置连接字符串,并按照你想要的方式配置其他所有内容。现在提交你选择的源代码控制,这样如果你有问题你可以再试一次
  3. 右键单击Solution Explorer中的安装项目,然后选择View> User Interface
  4. 右键单击“开始”(在步骤3中显示的“用户界面”窗口中)并选择“添加对话框”
  5. 选择“文本框(A)”,“文本框(B)”或“文本框(C)”之一,然后单击“确定”(据我所知,您选择哪个A / B / C无关紧要)。
  6. 单击“用户界面”窗口中的“文本框(A)”并将其向上拖动 “确认安装” 上方 ,因为您可能希望连接字符串对话框出现 “我们已准备好安装,您确定”窗口之前。
  7. 右键单击“Textboxes(A)”并选择“Properties Window”
  8. 自定义属性(它们将显示在位于解决方案资源管理器下方/旁边的“属性”选项卡中:
    1. 将Edit2Visible,Edit3Visible和Edit4Visible设置为false
    2. Edit1Label为“连接字符串:”(或您选择的措辞)
    3. Edit1Property为“SQL_CONNECTION_STRING”(或您选择的名称 – 这是自定义操作将引用的名称)
  9. 构建并运行安装程序以确保其仍能正确安装。

接下来您需要编写一个自定义操作来将连接字符串存储到app.config文件中。 设置项目中的安装App.Config作为自定义操作的问题涵盖了它,所以我将留给您阅读并使用它。

据我所知,没有办法在Visual Studio安装程序中嵌入依赖项,但我建议将其作为另一个问题解决,因为你在问题中确实有两个问题=)

Rob的回答非常有助于获得所需的2/3。 我只是花了一些时间找到最后1/3的方式,所以我希望这篇文章可以帮助你比我做得更快:

这篇MSDN文章有助于解释如何创建自定义操作: https : //msdn.microsoft.com/en-us/library/d9k65z2d(v = vs.100).aspx

要将它们组合在一起,一旦按照MSDN文章中的描述创建了自定义操作项目,就需要将其添加为部署项目的操作:

  1. 右键单击部署项目,然后选择“查看” – >“自定义操作”

  2. 右键单击“安装并添加自定义操作”

  3. 双击“应用程序文件夹”
  4. 单击添加输出,然后选择自定义操作项目输出
  5. 右键单击Commit并重复(“Add Custom Action”,选择Custom Action项目的输出)。 如果需要,请重复以进行回滚和卸载。

将安装向导中输入的数据链接到您的代码:对于上面定义的每个自定义操作(在Install文件夹,Commit文件夹等下),选择Custom Action项。 在“属性”窗口中,填充CustomActionData。 例如,我在UI中指定了一些文本框字段,以使Edit1Property和Edit2Property值为CONFIGURATION_SERVER和DATABASE_NAME。 为了使它们可用于我的自定义操作代码,我的CustomActionData设置为:/ cfgServer = [CONFIGURATION_SERVER] / dbName = [DATABASE_NAME]

然后,在我的代码中,我可以通过引用来获取值:Context.Parameters [“cfgServer”]或Context.Parameters [“dbName”](两者都返回包含用户输入的内容的字符串)。

我的代码在安装期间运行,我编写了一个方法来修改存储应用程序设置的.CONFIG文件,以使用用户指定的值。

Robs的回答是正确的,然后你必须将自定义操作数据传递给自定义操作的主输出。这是安装程序的一部分。安装程序类中的现在覆盖安装程序类的BeforeInstall方法。然后获取执行的位置通过GetExecutingAssembly()方法获取文件。获取执行汇编后,需要application.exe.config文件通过File.ReadAllText读取此文件,并使用String by的替换方法更改连接字符串参数,但必须在默认情况下添加唯一占位符连接字符串替换为此占位符。然后再次使用File.WriteAllText方法编写此文件。这将成功更改您的连接字符串安装,您的应用程序将运行此。