MSI错误1001. InstallUtilLib.dll:CorbindToRuntimeHost

时间:2012-10-15 11:04:57

标签: .net windows-installer compatibility

AFAIK Windows 8附带.NET Framework 4.5,不包含2.0版本。我有一个应用程序目标版本2.0,现在,如果我在Windows 8中运行它,它说“你需要安装.net框架2.0”。至于我从msdn读取的所有.net版本都具有向后兼容性,如果您希望您的应用程序在较新版本上运行,则需要在app.config文件中声明支持的框架版本。我准备了下面的配置文件,现在我能够运行msi但是,执行自定义操作时msiexec失败并发出以下错误“错误1001. InstallUtilLib.dll:CoreBindToRuntimeHost(hr = 0x80070003):该系统找不到指定的路径”。我该如何解决这个错误?我的猜测是它正在寻找.net framework 2.0文件夹下的InstallUtilLib。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" />
    <supportedRuntime version="v3.5" />
    <supportedRuntime version="v3.0" />
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

1 个答案:

答案 0 :(得分:1)

InstallUtil有许多缺陷和限制。您会注意到,如果以静默方式运行安装程序(/ qn),您仍会收到模态1001错误消息。是的,那是错的。是的,它已经坏了。

使用Windows Installer XML(WiX)部署工具基础(DTF)自定义操作来查看重构代码。它是微软的一个开源项目,它解决了这些问题,包括很多你可能都不知道的问题。

Deployment Tools Foundation (DTF) Managed Custom Actions

WiX Toolset v3.6

在Visual Studio中,您使用File |新项目| Windows Installer XML | C#Custom Action创建项目。进入Project Properties并将.NET版本设置为2.0。删除4.0引用。看看CustomAction.Config并注意它的设置是为了支持2.0,4.0及更高版本。然后移植代码。构建项目并获取CustomActionName.CA.dll并将其作为DLL自定义操作添加到安装程序。

另请注意,如果您使用的是Visual Studio部署项目,那么他们也会遇到许多问题,并且Microsoft已从Visual Studio 2012中删除了该项目类型。