MSBuild:错误 MSB3147:找不到所需的文件“setup.bin" [英] MSBuild: error MSB3147: Could not find required file 'setup.bin'

查看:16
本文介绍了MSBuild:错误 MSB3147:找不到所需的文件“setup.bin"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 MSBuild(在 CruiseControl 下)为我的 .NET 4 应用程序构建安装.安装版本应该创建一个 boostrapper 来安装先决条件(在这种情况下是 .NET 4 和 Windows Installer 4.5),这是使用 生成引导程序任务.

I'm trying to use MSBuild (under CruiseControl) to build the installation for my .NET 4 app. The installation build should create a boostrapper to install the prerequisite (.NET 4 and Windows Installer 4.5 in this case), this is done using the GenerateBootstrapper Task.

在安装了 VS 2010 的开发机器上从命令行运行 MSBuild.exe project.msbuild.xml 工作正常.在只有最新的 Windows 7 SDK 的构建机器上运行失败并显示错误:

Running MSBuild.exe project.msbuild.xml from the command line on a development machine, which has VS 2010 installed, works fine. Running on the build machine, which only has the latest Windows 7 SDK, fails with the error:

(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147: 
Could not find required file 'setup.bin' in '<project path>ProductDistributionsEngine'.

在开发机器上,我有一个 C:Program Files (x86)Microsoft SDKsWindowsv7.0ABootstrapperEngine 文件夹,其中包含一个 setup.bin 文件,但在构建机器上没有 C:Program FilesMicrosoft SDKsWindowsv7.1 内的 Bootstrapper 文件夹(7.1 vs 7.0A 是显然是因为VS2010安装了7.0A,而独立的SDK是7.1).

On the dev machines, I have a C:Program Files (x86)Microsoft SDKsWindowsv7.0ABootstrapperEngine folder containing a setup.bin file, but on the build machine there is no Bootstrapper folder inside C:Program FilesMicrosoft SDKsWindowsv7.1 (the 7.1 vs 7.0A is apparently because VS2010 installs 7.0A, but the standalone SDK is 7.1).

此外,在构建机器上,HKLMSoftwareMicrosoftGenericBootstrapper 中没有 4.0 注册表项,但开发机器确实有一个包含值为 的路径字符串c:Program Files (x86)Microsoft SDKsWindowsv7.0ABootstrapper

Also, on the build machine there is no 4.0 registry key inside HKLMSoftwareMicrosoftGenericBootstrapper, but the dev machines do have one containing a path string with a value of c:Program Files (x86)Microsoft SDKsWindowsv7.0ABootstrapper

看起来我需要在构建机器上安装一些东西才能将 Bootstrapper 文件夹添加到Microsoft SDKsWindowsv7.1"(并设置注册表项),但我不确定那是什么.知道我需要得到什么吗?

It looks like there's something I need to install on the build machine to add the Bootstrapper folder to "Microsoft SDKsWindowsv7.1" (and setup the registry keys), but I'm not sure what that is. Any idea what I need to get?

或者我还需要其他什么东西才能让我的安装构建工作?

Or is there something else I need to get my installation build working?

更新:我现在通过手动将 7.0A 引导程序文件夹从开发机器复制到构建机器上,然后将该路径手动添加到 HKLMSoftwareMicrosoftGenericBootstrapper4.0 注册表项.这似乎有效,但似乎这不是我应该做的来解决问题.因此,如果有人对此有更简单的解决方案,我将不胜感激.

Updated: I have this working at the moment by manually copying the 7.0A bootstrapper folder from a dev machine onto the build machine, and manually adding that path to the HKLMSoftwareMicrosoftGenericBootstrapper4.0 registry key. Which seems to work, but it seems like this can't be what I'm supposed to do to fix the problem. So I'd appreciate if anyone has a less-hacky solution to this.

推荐答案

根据 t他的博客条目 引导程序文件是在 .NET Framework SDK 安装期间安装的.它还显示了为查找引导程序目录而搜索的注册表项.

According to this blog entry the bootstrapper files are installed during the .NET Framework SDK install. It also shows the registry entries that are searched to look for the bootstrapper directory.

您可以尝试安装 .NET Framework SDK 或通过复制文件并添加注册表项来手动设置它.

You could try installing the .NET Framework SDK or manually set it up by copying the files and adding the registry entries.

这篇关于MSBuild:错误 MSB3147:找不到所需的文件“setup.bin"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆