MSBuild: ошибка MSB3147: Не удалось найти требуемый файл 'setup.bin'

Я пытаюсь использовать MSBuild (под CruiseControl) для сборки установки для моего .NET 4 приложения. В этом случае сборка установки должна создать ускоритель, чтобы установить предварительное условие (.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'.

На машинах dev у меня есть папка C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine, содержащая файл setup.bin, но на машине сборки нет Bootstrapper внутри C:\Program Files\Microsoft SDKs\Windows\v7.1 (7.1 против 7.0A, по-видимому, потому, что VS2010 устанавливает 7.0 A, но автономный SDK равен 7.1).

Кроме того, на машине сборки нет ключа реестра 4.0 внутри HKLM\Software\Microsoft\GenericBootstrapper\, но у машин-разработчиков есть один, содержащий строку пути со значением c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

Похоже на то, что мне нужно установить на машине сборки, чтобы добавить папку Bootstrapper в "Microsoft SDKs\Windows\v7.1" (и настроить разделы реестра), но я не уверен, что это такое. Любая идея, что мне нужно получить?

Или есть что-то еще, что мне нужно, чтобы моя работа по сборке работала?

Обновлено: У меня есть эта работа в настоящий момент, вручную скопировав папку bootstrapper 7.0A с машины-разработчика на машину сборки и вручную добавив этот путь к разделу реестра HKLM\Software\Microsoft\GenericBootstrapper\4.0. Кажется, что это работает, но похоже, что это не может быть то, что я должен сделать, чтобы исправить эту проблему. Поэтому я был бы признателен, если бы у кого-то было менее хреновое решение.

Ответ 1

В соответствии с t его запись в блоге файлы bootstrapper устанавливаются во время установки .NET Framework SDK. Он также показывает записи в реестре, которые выполняются для поиска каталога bootstrapper.

Вы можете попробовать установить SDK.NET Framework или вручную настроить его, скопировав файлы и добавив записи в реестр.

Ответ 2

У меня такая же проблема, но я не пытался вручную копировать файлы и взломать реестр, хотя я слышал и от других, что они также добились успеха.

Чтобы получить более реальное решение для этого, я создал запрос функции на сайте Connect.Microsoft.com, чтобы реализовать некоторые тип минимальной установки Visual Studio, чтобы обеспечить более простой способ настройки сервера сборки с необходимыми файлами разработки. Пожалуйста, проголосуйте и/или прокомментируйте запрос функции, чтобы помочь привлечь внимание к этой проблеме.