我有自己的安装UI(使用SharpSetup)。问题是,当我双击msi文件时,UI不会显示=>卸载时相同。要查看UI,我必须双击我的UI项目=>gui.exe
我要找的是:
当我双击msi文件时,是否可以启动UI?如果可能=>我如何做到这一点,以及如果我卸载它(添加/删除程序),UI也会出现,我必须包括什么???
感谢
您必须使用EmbeddedUI元素才能指定具有自定义UI的文件。
示例(其中自定义UI位于dll中):
<UI>
<EmbeddedUI Id="EmbeddedUI.dll" SourceFile="..EmbeddedUIEmbeddedUI.dll"/>
</UI>
一旦你这样做了,你就必须为每个动作提供对话框,因为默认的库存对话框都不会再运行了。
关于卸载,如果我没记错的话,自定义UI只会在修复过程中显示,所以你可以触发修复而不是卸载来显示UI并从那里卸载。卸载过程应直接卸载具有默认UI的应用程序(卸载进度条)
根据MSDN:"自定义UI DLL,在本例中为embedui.DLL,应导出用户定义的InitializeEmbeddedUI、EmbeddedUIHandler和ShutdownEmbeddedUI函数。"
您可以在此处查看更多信息。
SharpSetup使用外部UI,而不是嵌入式UI。在典型的场景中,msi文件不包含任何UI,因此您所观察到的内容是非常期望的。但是,您不应该将独立的.msi文件部署到客户端,而应该只部署包含所有必需文件(包括.msi文件和gui.exe)的Installer.exe文件。