2011-01-04 11 views
11

staram się używać MSBuild (pod Corector), aby zbudować instalację do mojego .NET 4 aplikacji. 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 Task.MSBuild: error MSB3147: Nie można odnaleźć wymaganego pliku „” setup.bin

Running MSBuild.exe project.msbuild.xml z wiersza poleceń na komputerze deweloperskim, który ma zainstalowany VS 2010, działa bez zarzutu. Uruchomiony na maszynie budowlanej, która ma tylko najnowszy Windows 7 SDK, nie powiedzie się z powodu błędu:

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

na maszynach dev Mam folder C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine zawierający plik setup.bin, ale na maszynie budowlanej tam nie ma Bootstrapper folder wewnątrz C:\Program Files\Microsoft SDKs\Windows\v7.1 (wersja 7.1 vs 7.0A jest widocznie dlatego, że VS2010 instaluje 7.0A, ale samodzielny SDK to 7.1).

Również na maszynie budowlanej nie ma klucza 4,0 rejestru wewnątrz HKLM\Software\Microsoft\GenericBootstrapper\, ale maszyny dev mają jeden zawierający ciąg ścieżki o wartości c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

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

Czy jest coś jeszcze, co potrzebne, aby moja kompilacja instalacji działała?

Aktualizacja: mam ten pracuje w tej chwili ręcznie kopiując folder inicjującego 7.0a z maszyny na maszynę dev build i ręcznie dodając, że ścieżkę do klucza HKLM\Software\Microsoft\GenericBootstrapper\4.0 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.

+0

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

+2

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. –

+0

Nie, to pytanie było od stycznia 2011 r., Więc przed 4.5 beta było dostępne. – Wilka

Odpowiedz

4

Według t his blog entry inicjującego pliki są instalowane podczas instalacji .NET Framework SDK. Pokazuje również wpisy rejestru, które są wyszukiwane w celu wyszukania katalogu bootstrapper.

Można spróbować zainstalować .NET Framework SDK lub ręcznie ustawić go poprzez kopiowanie plików i dodawanie wpisów rejestru.

+1

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

+1

To wydaje się 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

+0

Dla dalszego odniesienia: [ten blog] (http://jake.ginnivan.net/clickonce-bootstrapping-errors/) pokazuje, że w jakiś sposób Windows traci swoje odniesienie do pliku. Dodanie klucza rejestru i skopiowanie folderu silnika do folderu projektu rozwiązuje ten problem. –

2

mam przeżywa ten sam problem, ale nie próbowałem ręcznie kopiując nad plikami i hacking rejestru chociaż słyszałem od innych, a także, że mają one również miały powodzenie robić.

Aby uzyskać bardziej realistyczne rozwiązanie, utworzyłem feature request on the Connect.Microsoft.com site, aby zaimplementować pewien typ minimalnej instalacji programu Visual Studio, aby zapewnić łatwiejszy sposób konfiguracji serwera Build z niezbędnymi plikami programistycznymi. Zagłosuj i/lub skomentuj prośbę o funkcję, aby zwrócić uwagę na ten problem.

Powiązane problemy