Web Setup项目无法安装Dynamic-DATA站点:“安装程序中断了”
-
16-10-2019 - |
题
安装程序的最后阶段在此消息中失败:
安装不完整
在安装[项目]之前,安装程序被打断。您需要重新启动安装程序才能重试。
跑步 msiexec /i installer.msi /l*vx setup.log
在设置日志中显示以下条目:
INFO : [...] [ApplyWebFolderProperties]: Getting web folder property token... INFO : [...] [ApplyWebFolderProperties]: Token is '/LM/W3SVC/1/ROOT/ProjectDir/DynamicData/Filters'. INFO : [...] [ApplyWebFolderProperties]: Getting METADATA_HANDLE for the directory '/LM/W3SVC/1/ROOT/ProjectDir/DynamicData/Filters'. ERROR : [...] [ApplyWebFolderProperties]: FAILED: -2147024893 ERROR : [...] [ApplyWebFolderProperties]: FAILED: -2147024893 ERROR : [...] [ApplyWebFolderProperties]: Custom Action failed with code: '3' ERROR : [...] [ApplyWebFolderProperties]: Custom Action failed with code: '3' INFO : [...] [ApplyWebFolderProperties]: Custom Action completed with return code: '3'
以前,同一Web应用程序没有使用Web设置项目安装问题。该问题在将Web应用程序从.NET 3.5 SP1升级到.NET 4.0之后开始。
解决方案
此博客条目 指出问题:
让我开始思考,我有一个子文件夹 过滤器. 。除了重命名 过滤器子文件夹使其正确完成。我假设您可能在名为AppPools,Info或1的文件夹中遇到同样的问题。
(强调我的)
很遗憾, 过滤器 是动态数据中的硬编码文件夹名称。如果你看 过滤器捕获, ,似乎没有任何方法可以覆盖该值,因为 metamodel 不是标记的虚拟。如果我们不能更改文件夹名称,那么我们必须考虑修复安装程序...
安装程序错误正在由 应用WebFolderProperties 自定义动作。该操作不是Windows安装程序内置的,它是由Web Setup项目添加的。这很有帮助,因为这意味着我们可以将其删除 Wirunsql.vbs:
cscript WiRunSQL.vbs installer.msi "DELETE FROM CustomAction WHERE Action='WEBCA_ApplyWebFolderProperties'"
请注意,实际名称 应用WebFolderProperties 是 WEBCA_ApplyWebFolderProperties
. 。看到该动作似乎在任何地方都没有记录下来,请注意。不过,它似乎并不重要。
为了使解决方法自动化,您可以将命令添加到设置项目的后建筑后文章中,例如:
cscript.exe "$(ProjectDir)..\WiRunSQL.vbs" "$(BuiltOuputPath)" "DELETE FROM CustomAction WHERE Action='WEBCA_ApplyWebFolderProperties'"
如果有人知道一种更好的方法来安装名称的文件夹 过滤器, ,我很想听听。
不隶属于 StackOverflow