我目前正在处理一个Visual Studio 2010设置项目,想知道以下是否可行:
1)以一种不显示默认表单的方式运行设置项目,而是显示我自己的自定义表单,该表单订阅设置项目事件。这样,我可以显示安装信息并增加我的进度条。
2)如果1可行,我需要一种指定默认位置的方法。
3)我有一个单独的库项目,其中有一个自定义安装类(从“System.Configuration.Install.Installer”继承),从安装处理程序中,我希望能够显示自定义窗体,并控制用户所做的选择。我想通过添加对system.windows.forms的引用来实现这一点,但这是否是正确的方法?如果我无法隐藏默认的安装表单,则这些自定义表单将出现在默认的安装表单上,我认为这看起来会很糟糕。
欢迎提供建议、链接等 谢谢!
*更新1 *
我能否从C#代码启动.msi,同时传递一个值?
就像这个人在这里做的那样: link 但是传递一个值……然后从我的自定义安装类中,根据这个值采取行动。
更新2
似乎我可以: link code project 更新3
我正在考虑以下操作,我将开始使用一个winforms应用程序进行测试。
1)启动winforms应用程序。 2)进行几个webService调用,显示数据,用户进行选择。 3)根据更新1中的链接,启动进程(静默模式),根据更新2传入所选值。 4)使用某些跨进程事件机制(WCF),使我的自定义安装类能够通知我的表单不同步骤正在运行,并更新进度条和消息。
1)以一种不显示默认表单的方式运行设置项目,而是显示我自己的自定义表单,该表单订阅设置项目事件。这样,我可以显示安装信息并增加我的进度条。
2)如果1可行,我需要一种指定默认位置的方法。
3)我有一个单独的库项目,其中有一个自定义安装类(从“System.Configuration.Install.Installer”继承),从安装处理程序中,我希望能够显示自定义窗体,并控制用户所做的选择。我想通过添加对system.windows.forms的引用来实现这一点,但这是否是正确的方法?如果我无法隐藏默认的安装表单,则这些自定义表单将出现在默认的安装表单上,我认为这看起来会很糟糕。
欢迎提供建议、链接等 谢谢!
*更新1 *
我能否从C#代码启动.msi,同时传递一个值?
就像这个人在这里做的那样: link 但是传递一个值……然后从我的自定义安装类中,根据这个值采取行动。
更新2
似乎我可以: link code project 更新3
我正在考虑以下操作,我将开始使用一个winforms应用程序进行测试。
1)启动winforms应用程序。 2)进行几个webService调用,显示数据,用户进行选择。 3)根据更新1中的链接,启动进程(静默模式),根据更新2传入所选值。 4)使用某些跨进程事件机制(WCF),使我的自定义安装类能够通知我的表单不同步骤正在运行,并更新进度条和消息。