C# 在visual studio中创建自定义安装程序,允许客户端和服务器单独安装

C# 在visual studio中创建自定义安装程序,允许客户端和服务器单独安装,c#,visual-studio-2008,windows-installer,C#,Visual Studio 2008,Windows Installer,我一直计划使用VisualStudio中包含的“安装项目”创建一个安装程序。我希望以这样一种方式创建它,即允许使用单个MSI文件单独安装客户端/服务。 有人能告诉我正确的方向/步骤吗。 更详细地说,客户端应用程序将是桌面应用程序,服务器应用程序将是windows服务。一般来说,您可以从固定列表中向设置中添加一个单选按钮(2)对话框,并让用户选择一个,或者选中两个都允许的复选框。如果是单选按钮,则有一个属性按钮2,根据所选的属性按钮,该按钮将为1或0。然后为客户机或服务器的每个文件设置一个条件按钮

我一直计划使用VisualStudio中包含的“安装项目”创建一个安装程序。我希望以这样一种方式创建它,即允许使用单个MSI文件单独安装客户端/服务。 有人能告诉我正确的方向/步骤吗。
更详细地说,客户端应用程序将是桌面应用程序,服务器应用程序将是windows服务。

一般来说,您可以从固定列表中向设置中添加一个单选按钮(2)对话框,并让用户选择一个,或者选中两个都允许的复选框。如果是单选按钮,则有一个属性按钮2,根据所选的属性按钮,该按钮将为1或0。然后为客户机或服务器的每个文件设置一个条件按钮2=1(视情况而定)

有一些令人讨厌的陷阱。一个是修复将通过重新安装,BUTTON2的值将未定义,因此您将得到意外的结果。处理此问题的一种方法是使用值[BUTTON2]创建一个注册表项,以便将该值保存在注册表中,然后您可以添加对该值的搜索,以便在修复时重新初始化它

VS设置没有很好的方法来实现这一点,因为它们没有多个功能可供选择,并且可以通过进入程序和功能并更改它们来修改。VS设置都有一个单一的功能,因此您所能做的就是根据复选框和单选按钮调整正在安装的文件/组件


正在安装的每个文件的“属性”窗口(解决方案资源管理器窗格)都包含一个条件属性。在解决方案资源管理器中选择文件,然后执行F4将显示“属性”窗口

将安装哪个主输出。假设我有一个来自桌面应用程序的主输出和另一个主输出,即windows服务,当用户选择单选按钮使BUTTON2 property=1时,将安装该服务。我从不关心主输出-只需将构建中的文件拖放到安装项目中Fiile视图中的应用程序文件夹中。然后您可以在文件上添加条件。@PhilDW:我没有在文件或组件上获得该条件。你能详细说明如何做这一步,我正在寻找完全相同的操作。如何在文件上添加条件?