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

MSBuild:错误MSB3147:找不到所需的文件';setup.bin';,msbuild,.net-4.0,installation,Msbuild,.net 4.0,Installation,我正在尝试使用MSBuild(在CruiseControl下)为我的.NET4应用程序构建安装。安装版本应该创建一个boostrapper来安装必备组件(.NET 4和Windows Installer 4.5),这是使用完成的 在安装了VS 2010的开发计算机上,从命令行运行MSBuild.exe project.MSBuild.xml,效果良好。在仅具有最新Windows 7 SDK的生成计算机上运行失败,错误为: (ProductDistributions target) -> b

我正在尝试使用MSBuild(在CruiseControl下)为我的.NET4应用程序构建安装。安装版本应该创建一个boostrapper来安装必备组件(.NET 4和Windows Installer 4.5),这是使用完成的

在安装了VS 2010的开发计算机上,从命令行运行
MSBuild.exe project.MSBuild.xml
,效果良好。在仅具有最新Windows 7 SDK的生成计算机上运行失败,错误为:

(ProductDistributions target) -> bootstrapper.xml(236,5): error MSB3147: 
Could not find required file 'setup.bin' in '<project path>\ProductDistributions\Engine'.
(ProductDistributions目标)->bootstrapper.xml(236,5):错误MSB3147:
在“\ProductDistributions\Engine”中找不到所需的文件“setup.bin”。
在开发机器上,我有一个
C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.0A\Bootstrapper\Engine
文件夹,其中包含
setup.bin
文件,但在生成机器上,
C:\Program Files\Microsoft SDK\Windows\v7.1
(7.1 vs 7.0A显然是因为VS2010安装了7.0A,但独立SDK是7.1)

此外,在生成计算机上,
HKLM\Software\Microsoft\GenericBootstrapper\
中没有4.0注册表项,但开发计算机确实有一个包含路径字符串的注册表项,其值为
c:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\Bootstrapper\

看起来我需要在生成计算机上安装一些东西,以便将引导程序文件夹添加到“Microsoft SDK\Windows\v7.1”(并设置注册表项),但我不确定这是什么。知道我需要得到什么吗

或者我还需要其他什么东西来让我的安装版本正常工作

更新:我现在可以通过手动将7.0A bootstrapper文件夹从开发机器复制到构建机器上,并手动将该路径添加到
HKLM\Software\Microsoft\GenericBootstrapper\4.0
注册表项中来实现这一点。这似乎可行,但似乎不是我应该做的x问题。因此,如果有人对此有一个不太黑客的解决方案,我将不胜感激。

根据t,引导程序文件是在.NET Framework SDK安装过程中安装的。它还显示了为查找引导程序目录而搜索的注册表项


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

我也遇到同样的问题,但没有尝试手动复制文件和入侵注册表,尽管我也从其他人那里听说他们也成功地做到了这一点


为了获得一个更真实的解决方案,我创建了一个用于实现某种类型的Visual Studio最小安装的解决方案,以便提供一种更简单的方法来使用必要的开发文件设置生成服务器。请对功能请求进行投票和/或评论,以帮助引起对这个问题的注意。

Hmmm,生成机器已经启动了had.NET SDK和Windows SDK(也应安装)但我尝试过重新安装,但它没有解决问题。我只是考虑复制文件,但我不确定这是否会导致其他问题——所有的DEV机器都有7.0A,并且构建机器是7.1,所以复制7.0A可能不起作用。我想我会看看会发生什么。这似乎是可行的,但它感觉好像是错误的解决方案。在接受此答案之前,我将稍等片刻,以防有人提出一个不太黑客的解决方案。不过,谢谢,我现在再次安装了building。进一步参考:显示windows以某种方式失去了对该文件的引用。因此,添加注册表项并将引擎文件夹复制到项目文件夹确实解决了此问题。如上所述复制7.0A引导程序并手动添加注册表项的更改修复了我的问题。不过,我仍在寻找一个不太黑客的解决方案,您是否碰巧在该机器上安装了.Net 4.5 beta版?在完全卸载4.5版之前,我的工作站上也有一些类似的问题(添加/删除程序中的所有内容都参考了4.5和VS11)并从MSDN重新安装了4.0。不,这个问题是从2011年1月开始的,所以在4.5测试版可用之前。删除.Net 4.5(版本)并重新安装4.0在我的TeamCity服务器上起作用。