MSBuild:错误MSB3147:找不到所需文件'setup.bin'

Wil*_*lka 12 msbuild installer .net-4.0

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

MSBuild.exe project.msbuild.xml从安装了VS 2010的开发计算机上的命令行运行,运行正常.在仅具有最新Windows 7 SDK的构建计算机上运行失败,并显示以下错误:

(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147: 
Could not find required file 'setup.bin' in '<project path>\ProductDistributions\Engine'.
Run Code Online (Sandbox Code Playgroud)

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

此外,在构建机器上没有4.0注册表项HKLM\Software\Microsoft\GenericBootstrapper\,但dev机器确实有一个包含值为的路径字符串c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

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

或者还有什么我需要让我的安装版本工作?

更新:我现在通过手动将7.0A bootstrapper文件夹从开发机器复制到构建机器上,并手动将该路径添加到HKLM\Software\Microsoft\GenericBootstrapper\4.0注册表项来实现此功能.这似乎工作,但似乎这不是我应该做的解决问题.所以,如果有人对此有一个不太苛刻的解决方案,我会很感激.

Bri*_*ker 4

根据他的博客文章,引导程序文件是在 .NET Framework SDK 安装期间安装的。它还显示了搜索引导程序目录的注册表项。

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