AFAIK 8附带.NET Framework4.5,不包括2.0版本。我有一个针对2.0版本的应用程序,现在如果我在windows 8中运行它,它会说“您需要安装.net框架2.0”。据我从msdn中看到的,所有.net版本都具有向后兼容性,如果您希望应用程序在较新的版本上运行,则需要在app.config文件中声明支持的框架版本。我准备了下面的配置文件,现在我可以运行msi,但是,在执行自定义操作时msiexec失败,并给出了以下错误 "Error 1001. InstallUtilLib.dll:CoreBindToRuntimeHost (hr=0x80070003):系统找不到指定的路径“。如何解决此错误?我猜它正在寻找InstallUtilLib框架2.0文件夹下的.net。
<?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>
发布于 2012-10-15 11:29:42
InstallUtil有许多缺陷和局限性。您会注意到,如果您以静默方式运行安装程序(/qn),您仍然会得到一个模式1001错误消息。是的,那是不对的。是的,就是那个坏了。
看看如何使用(WiX) (DTF)自定义操作重构代码。这是一个来自微软的开源项目,它解决了这些问题,包括很多你可能没有意识到的问题。
在Visual中,您可以使用XML C#自定义操作来创建项目。进入Properties并将.NET版本设置为2.0。删除4.0引用。看看CustomAction.Config,注意它是为支持2.0、4.0及更高版本而设置的。然后将您的代码移植到。构建项目并接受CustomActionName.CA.dll并将其作为DLL自定义操作添加到安装程序中。
还请注意,如果您使用的是Visual部署项目,则它们也存在许多问题,而且Microsoft从Visual 2012中删除了该项目类型。
https://stackoverflow.com/questions/12894279
复制相似问题