安装程序的最后阶段在此消息中失败:

安装不完整

在安装[项目]之前,安装程序被打断。您需要重新启动安装程序才能重试。

跑步 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'" 

请注意,实际名称 应用WebFolderPropertiesWEBCA_ApplyWebFolderProperties. 。看到该动作似乎在任何地方都没有记录下来,请注意。不过,它似乎并不重要。

为了使解决方法自动化,您可以将命令添加到设置项目的后建筑后文章中,例如:

cscript.exe "$(ProjectDir)..\WiRunSQL.vbs" "$(BuiltOuputPath)" "DELETE FROM CustomAction WHERE Action='WEBCA_ApplyWebFolderProperties'"

如果有人知道一种更好的方法来安装名称的文件夹 过滤器, ,我很想听听。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top