WIX安装程序:使用自定义操作将附加文本设置为退出对话框
我正在使用wix安装ASP.NET MVC网站。我需要在退出屏幕上显示已安装站点的URL 我有以下财产:WIX安装程序:使用自定义操作将附加文本设置为退出对话框,wix,Wix,我正在使用wix安装ASP.NET MVC网站。我需要在退出屏幕上显示已安装站点的URL 我有以下财产: <Property Id="WEBSITE_URL" Value="NotSet" /> <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="NotSet" /> 使用自定义操作填充的对象: <CustomAction Id="GetWebsiteUrl" BinaryKey="
<Property Id="WEBSITE_URL" Value="NotSet" />
<Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="NotSet" />
使用自定义操作填充的对象:
<CustomAction Id="GetWebsiteUrl"
BinaryKey="CustomActions"
DllEntry="GetWebsiteUrl"
Execute="immediate"
Return="ignore" />
<CustomAction Id="SetExitDialogAdditionalText"
Property="WIXUI_EXITDIALOGOPTIONALTEXT"
Value="The API may be accessed from the following URL: [WEBSITE_URL]"/>
InstallUISequence如下所示:
<InstallUISequence>
<Custom Action='GetWebsiteUrl' Before='ExecuteAction'>NOT Installed AND NOT REMOVE</Custom>
<Custom Action="SetExitDialogAdditionalText" After="GetWebsiteUrl">NOT Installed AND NOT REMOVE</Custom>
</InstallUISequence>
未安装也未删除
未安装也未删除
退出屏幕上的结果字符串为:
可以从以下URL访问API:NotSet
我已尝试在InstallExecuteSequence和日志中执行自定义操作,我可以看到字符串看起来是正确的:
<InstallExecuteSequence>
<Custom Action='GetWebsiteUrl' Before='InstallFinalize'>NOT Installed AND NOT REMOVE</Custom>
<Custom Action="SetExitDialogAdditionalText" After="GetWebsiteUrl">NOT Installed AND NOT REMOVE</Custom>
</InstallExecuteSequence>
未安装也未删除
未安装也未删除
结果显示在日志中:
属性更改:修改网站的URL属性。其当前值为
“未设置”。它的新值:“”
属性更改:修改WIXUI\u EXITDIALOGOPTIONALTEXT属性。它的
当前值为“未设置”。它的新价值是:“API可能是
从以下URL访问:'
但在UI中,出现了一些问题。
我觉得问题在安装过程中,但不明白我做错了什么。请告知。请尝试将您的网站URL属性声明为安全的,以防在UI和执行序列中未正确保存该值 尝试将您的网站\u URL属性声明为安全的,以防在UI和执行序列中未正确保存该值 我已经尝试使用以下命令运行msi,以通过UI查看安装日志:msiexec/I API.Installer.msi/l*v MyLogFile.txt,它刚刚起作用!在此之后,我尝试将Admin=“yes”添加到属性中,但当我不是从控制台运行msi时仍然没有成功。我尝试使用以下命令运行msi,以通过UI查看安装日志:msiexec/I API.Installer.msi/l*v MyLogFile.txt,它刚刚起作用!之后,我尝试将Admin=“yes”添加到属性中,但当我不是从控制台运行msi时仍然没有成功。在下面的评论中,您提到它可以从命令行调用。我可以向您保证,除了添加日志之外,没有“功能”上的差异。如果添加“logging”是“允许”set属性工作,我可能会怀疑DLL有计时/线程问题。为什么需要自定义操作来获取网站URL?这不应该是安装“信息”的一部分吗?在安装过程中,用户可以在iis中选择要安装应用程序的网站。应用程序部署到IIS,然后使用自定义操作从选定的webiste获取绑定信息并组装最终url。您只需在InstallValidate sequence操作之前收集并设置属性。您不需要为此执行自定义操作。一个带有属性链接的简单对话框文本应该就可以做到这一点。您可能仍然需要自定义操作来根据URL收集其他信息,但这将与向导工作流一起调用。完整的UI,对吗?在下面的评论中,您提到它可以从命令行调用。我可以向您保证,除了添加日志之外,没有“功能”上的差异。如果添加“logging”是“允许”set属性工作,我可能会怀疑DLL有计时/线程问题。为什么需要自定义操作来获取网站URL?这不应该是安装“信息”的一部分吗?在安装过程中,用户可以在iis中选择要安装应用程序的网站。应用程序部署到IIS,然后使用自定义操作从选定的webiste获取绑定信息并组装最终url。您只需在InstallValidate sequence操作之前收集并设置属性。您不需要为此执行自定义操作。一个带有属性链接的简单对话框文本应该就可以做到这一点。您可能仍然需要自定义操作来根据URL收集其他信息,但这将与向导工作流一起调用。完整用户界面,对吗?