Asp.net Web安装项目-获取安装程序类的选定主机名

Asp.net Web安装项目-获取安装程序类的选定主机名,asp.net,installation,Asp.net,Installation,我有一个installer类,我使用它在应用程序最初安装后对其进行一些处理 在安装程序中,我有一个自定义对话框,要求输入用户名和密码。这在我的安装程序类中通过 Me.Context.Parameters("username") 将其设置为CustomActionData后/username=“[TXTUSERNAME]” 这一切都很好。Web设置项目的第一个对话框使用户可以从下拉列表中选择IIS网站,并根据需要设置VirtualDirectory。我需要获取所选的主机名,但到目前为止,我在任何

我有一个installer类,我使用它在应用程序最初安装后对其进行一些处理

在安装程序中,我有一个自定义对话框,要求输入用户名和密码。这在我的安装程序类中通过

Me.Context.Parameters("username")
将其设置为CustomActionData后
/username=“[TXTUSERNAME]”

这一切都很好。Web设置项目的第一个对话框使用户可以从下拉列表中选择IIS网站,并根据需要设置VirtualDirectory。我需要获取所选的主机名,但到目前为止,我在任何文档中都找不到对它的引用

我尝试过以下方法:

Me.Context.Parameters("targetURL")
Me.Context.Parameters("TARGETSITE")
但是他们都没有输出任何东西

有什么想法吗?

试试看

Response.Write(HttpContext.Current.Request.ServerVariables["HTTP_HOST"]

我不知道你是否在找这个..

试试看

Response.Write(HttpContext.Current.Request.ServerVariables["HTTP_HOST"]


我不知道你是否在寻找这个..

我创建了一个示例Web安装项目,并在ORCA编辑器中打开了MSI


可能是“
TARGETVDIR
”可能有任何用途

我创建了一个示例Web设置项目,并在ORCA编辑器中打开了MSI


可能是“
TARGETVDIR
”可能有任何用途

,那么安装后是否需要进行一些处理?您说过这是您的问题(第一行),所以我们假设磁盘上有可运行的东西:-)

例如,如果您是从System.Configuration.Install.Installer派生的,则可以通过installutil在安装后调用它,并传递任何类型的参数,这意味着您此时不必使用MSI


还有一些源代码等,展示了如何将完全任意的命令行参数传递给MSI。它还列出了大量可用的属性-至少喜欢其中一个:-)

那么安装后是否需要进行一些处理?您说过这是您的问题(第一行),所以我们假设磁盘上有可运行的东西:-)

例如,如果您是从System.Configuration.Install.Installer派生的,则可以通过installutil在安装后调用它,并传递任何类型的参数,这意味着您此时不必使用MSI


还有一些源代码等,展示了如何将完全任意的命令行参数传递给MSI。它还列出了大量可用的属性-至少喜欢其中一个:-)

不,这是为使用web安装项目的web应用程序安装程序准备的。应用程序现在还没有安装到IIS网站中..不,这是为使用web安装项目的web应用程序安装程序准备的。此时应用程序甚至还没有安装到IIS网站中。您的意思是要查找解析到安装程序当前运行的计算机的URL吗?或者您是否需要找到机器的名称以便构建URL?例如,在Web安装项目中,在CustomActionData下,您可以在自定义安装程序类中访问一系列参数。例如,我有一个带有两个文本框的自定义对话框,我使用它们来获取用户的用户名和密码。我可以使用Me.Context.Parameters(“用户名”)在安装程序类中访问它们。在Web安装项目中,将应用程序安装到IIS网站中。因此,您选择的IIS网站指向的位置(按目录)将安装到该路径。我需要所选IIS网站的主机名,以便在安装时进行一些方便的设置。根据文档,它应该类似于:Me.Context.Parameters(“targetURL”)和/targetURL=“[targetURL]”但是它对我不起作用..你是说你想找到一个解析到安装程序当前运行的机器的URL?或者您是否需要找到机器的名称以便构建URL?例如,在Web安装项目中,在CustomActionData下,您可以在自定义安装程序类中访问一系列参数。例如,我有一个带有两个文本框的自定义对话框,我使用它们来获取用户的用户名和密码。我可以使用Me.Context.Parameters(“用户名”)在安装程序类中访问它们。在Web安装项目中,将应用程序安装到IIS网站中。因此,您选择的IIS网站指向的位置(按目录)将安装到该路径。我需要所选IIS网站的主机名,以便在安装时进行一些方便的设置。根据文档,它应该类似于:Me.Context.Parameters(“targetURL”)和/targetURL=“[targetURL]”但它对我不起作用。感谢大家的帮助,这是最接近答案的。这个链接看起来很有趣。。我的自定义安装程序类在提交阶段运行,所以在MSI完全完成之前,但大多数安装例程(如复制文件)都已完成。我认为这只是调用安装程序类的正常时间。在此阶段,我无法从IIS网站“TARGETURL”等获取主机名值。。这给了我一个很好的继续下去的链接。。不幸的是,我暂时换了别的话题。。再次感谢!谢谢大家的帮助,这是最接近答案的。这个链接看起来很有趣。。我的自定义安装程序类在提交阶段运行,所以在MSI完全完成之前,但大多数安装例程(如复制文件)都已完成。我认为这只是调用安装程序类的正常时间。在此阶段,我无法从IIS网站“TARGETURL”等获取主机名值。。这给了我一个很好的继续下去的链接。。不幸的是,我暂时换了别的话题。。再次感谢!