Pytanie MSBuild: error MSB3147: Nie można znaleźć wymaganego pliku "setup.bin" [duplicate]


To pytanie już zawiera odpowiedź:

Próbuję użyć MSBuild (pod CruiseControl) do zbudowania instalacji dla mojej aplikacji .NET 4. Kompilacja instalacji powinna utworzyć procedurę boostrapper w celu zainstalowania wymagań wstępnych (w tym przypadku należy zainstalować .NET 4 i Windows Installer 4.5), odbywa się to przy użyciu GenerateBootstrapper Zadanie.

Bieganie MSBuild.exe project.msbuild.xml z wiersza poleceń na maszynie programującej, która ma zainstalowany VS 2010, działa dobrze. Uruchomienie na komputerze kompilującym, które ma tylko najnowszy zestaw SDK systemu Windows 7, kończy się błędem:

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

Na komputerach dev mam C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine folder zawierający setup.bin plik, ale na komputerze kompilacji nie ma Bootstrapper wewnątrz folderu C:\Program Files\Microsoft SDKs\Windows\v7.1 (7,1 vs 7,0 A to najwyraźniej dlatego, że VS2010 instaluje 7.0A, ale samodzielny SDK to 7.1).

Ponadto na komputerze kompilacji nie ma klucza rejestru w wersji 4.0 HKLM\Software\Microsoft\GenericBootstrapper\, ale maszyny dev mają ciąg zawierający ciąg znaków o wartości c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

Wygląda na to, że jest coś, co muszę zainstalować na komputerze kompilacji, aby dodać folder Bootstrapper do "Microsoft SDK \ Windows \ v7.1" (i skonfigurować klucze rejestru), ale nie jestem pewien co to jest. Jakiś pomysł, co muszę dostać?

Czy jest coś jeszcze, czego potrzebuję, aby moja kompilacja instalacji działała?

Zaktualizowano: Mam to działa w tej chwili, ręcznie kopiując folder bootstrapera 7.0A z maszyny deweloperskiej na maszynę do kompilacji i ręcznie dodając tę ​​ścieżkę do HKLM\Software\Microsoft\GenericBootstrapper\4.0 klucz rejestru. Co wydaje się działać, ale wygląda na to, że to nie może być to, co powinienem zrobić, aby rozwiązać problem. Byłbym wdzięczny, gdyby ktoś miał mniej hackowate rozwiązanie.


12
2018-01-04 12:01


pochodzenie


Powyższa zmiana kopiowania bootstrapera 7.0A i ręczne dodanie klawisza reg rozwiązało problem, który miałem. Wciąż szukam mniej hackowanego rozwiązania, - IndigoDelta
Czy zdarzyło Ci się zainstalować beta .Net 4.5 na tym komputerze? Miałem podobne problemy na mojej stacji roboczej, aż całkowicie odinstalowałem 4.5 (wszystko, co odnosi się do 4.5 i VS11 w programach dodawania / usuwania) i ponownie zainstalowałem 4.0 z MSDN. - Dax Fohl
Nie, to pytanie było od stycznia 2011 r., Więc przed 4.5 beta było dostępne. - Wilka
Usunięcie .Net 4.5 (wydanie) i ponowne zainstalowanie 4.0 działało na moim serwerze TeamCity. - squillman


Odpowiedzi:


Według tjego wpis na blogu pliki bootstrapper są instalowane podczas instalacji .NET Framework SDK. Pokazuje również wpisy rejestru, które są wyszukiwane w celu wyszukania katalogu bootstrapper.

Możesz spróbować zainstalować .NET Framework SDK lub ręcznie ustawić go, kopiując pliki i dodając wpisy rejestru.


4
2018-01-04 15:22



Hmmm, maszyna do budowania miała już .NET SDK i Windows SDK (który również powinien ją zainstalować), ale mimo to spróbowałem ponownie zainstalować i to nie rozwiązało problemu. Rozważyłem tylko kopiowanie plików, ale nie byłem pewien, czy to spowoduje inne problemy - wszystkie urządzenia dev mają 7.0A, a maszyny kompilujące 7.1, więc kopiowanie 7.0A może nie działać. Chyba po prostu zobaczę, co się stanie. - Wilka
Wydaje się, że działa, ale wydaje się, że to niewłaściwe rozwiązanie. Poczekam trochę, zanim przyjmuję tę odpowiedź, na wypadek, gdyby ktoś przyszedł z mniej hackowskim rozwiązaniem. Dzięki, teraz mam instalacje ponownie. - Wilka
W celu uzyskania dalszych informacji: ten blog pokazuje, że jakoś okna tracą swoje odniesienie do pliku. Dodanie klucza rejestru i skopiowanie folderu silnika do folderu projektu rozwiązuje ten problem. - Paulo Bueno


Mam ten sam problem, ale nie próbowałem ręcznie kopiować plików i hakować rejestru, chociaż słyszałem od innych, że oni również odnieśli sukces.

Aby uzyskać bardziej realistyczne rozwiązanie, stworzyłem żądanie funkcji na stronie Connect.Microsoft.com implementować pewien typ minimalnej instalacji Visual Studio, aby zapewnić łatwiejszy sposób konfiguracji Build Server z niezbędnymi plikami deweloperskimi. Zagłosuj i / lub skomentuj prośbę o funkcję, aby zwrócić uwagę na ten problem.


2
2018-01-25 17:40