2011-01-04 13 views
11

.NET 4 uygulamamın kurulumunu oluşturmak için MSBuild (CruiseControl altında) kullanıyorum. Yükleme derlemesi, önkoşul olanı (.NET 4 ve Windows Installer 4.5 bu durumda) yüklemek için bir boostrapper oluşturmalıdır, bu GenerateBootstrapper Task kullanılarak yapılır.MSBuild: error MSB3147: Gerekli dosya bulunamadı 'setup.bin'

VS 2010'un yüklü olduğu bir geliştirme makinesindeki komut satırından MSBuild.exe project.msbuild.xml'u çalıştırmak iyi çalışıyor. Sadece, son Windows 7 SDK sahiptir inşa makine üzerinde Running hatayla başarısız:

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

, ben setup.bin dosyasını içeren bir C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engine klasörü var ama yapı makinede hiçbir yokturklasörü içinde C:\Program Files\Microsoft SDKs\Windows\v7.1 (7.1 vs 7.0A, VS2010'un 7.0A'yı yüklediği, ancak bağımsız SDK'nın 7.1 olduğu için).

Ayrıca yapı makinede orada HKLM\Software\Microsoft\GenericBootstrapper\ içeride 4.0 kayıt defteri anahtarı, ancak dev makineler tek c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

bir değere sahip bir yol dizesi içeren var ben yüklemeniz gereken bir şey var gibi görünüyor Bootstrapper klasörünü "Microsoft SDKs \ Windows \ v7.1" e (ve kayıt defteri anahtarlarının kurulumunu) eklemek için makine oluşturun, ancak bunun ne olduğundan emin değilim. Ne almam gerektiği hakkında bir fikrin var mı?

Veya benim kurulum çalışmamı almak için gereken başka bir şey var mı?

Güncel: Bu el yapı makinesinin üzerine dev makineden 7.0a bootstrapper klasör kopyalanıyor ve elle HKLM\Software\Microsoft\GenericBootstrapper\4.0 kayıt defteri anahtarına bu yolu ekleyerek şu anda çalışma var. Hangi işe yarıyor gibi görünüyor, ama bu sorunu çözmek için ne yapmam gerektiği gibi olamaz. Bu yüzden kimsenin buna daha az zarar veren bir çözümü varsa, minnettar olurum.

+0

Yukarıdaki 7,0A önyükleyicinin kopyalanması ve el ile kayıt anahtarının değiştirilmesi, sorunu giderdim. Yine de, – IndigoDelta

+2

'a göre daha az karmaşık bir çözüm arıyorum. Bu makineye .Net 4.5 beta sürümünü yüklediniz mi? İş istasyonumda, 4.5'ü tamamen kaldırana kadar (4.5/VS11'i add/remove programlarına atıfta bulunan) ve MSDN'den 4.0'ı yeniden yükledikten sonra, benzer sorunlar yaşadım. –

+0

Hayır, bu soru Ocak 2011'den geldi - 4.5'ten önce beta mevcuttu. – Wilka

cevap

4

t his blog entry'a göre, bootstrapper dosyaları .NET Framework SDK yüklemesi sırasında yüklenir. Ayrıca önyükleyici dizini aramak için aranan kayıt defteri girdilerini gösterir.

.NET Framework SDK'yı yüklemeyi veya dosyaları kopyalayıp kayıt defteri girdilerini ekleyerek el ile kurmayı deneyebilirsiniz.

+1

Hmmm, derleme makinesinde zaten .NET SDK ve Windows SDK vardı (ayrıca yüklemeliydi), ancak yine de yeniden yüklemeyi denedim ve sorunu çözmedi.Sadece dosyaları kopyalamayı düşünmüştüm, ancak başka sorunlara yol açıp açmayacağından emin değildim - tüm dev makinelerin 7.0A ve yapı makineleri 7.1, bu yüzden 7.0A kopyalamayabilir. Sanırım ne olduğunu göreceğim. – Wilka

+1

Bu işe yarıyor gibi görünüyor, ama yanlış bir çözüm gibi geliyor. Birisi daha az hacky bir çözüm ile gelirse bu cevabı kabul etmeden önce biraz bekleyeceğim. Yine de, şimdi yeniden kurulum yapıyorum. – Wilka

+0

Daha fazla referans için: [bu blog] (http://jake.ginnivan.net/clickonce-bootstrapping-errors/), bir şekilde pencerelerin dosyaya olan başvurusunu kaybettiğini gösterir. Bu nedenle, kayıt defteri anahtarının eklenmesi ve motor klasörünün proje klasörüne kopyalanması bu sorunu çözmektedir. –

2

Aynı sorunu yaşıyorum ancak dosya üzerinde el ile kopyalamayı denemedim ve diğerlerinden de duyduğum kadarıyla de kayıt aldım.

Bunun için daha gerçekçi bir çözüm elde etmek için, gerekli geliştirme dosyalarıyla bir Build Server kurmanın daha kolay bir yolunu sağlamak amacıyla, Visual Studio'nun bir tür en az yükleme gerçekleştirmesi için bir feature request on the Connect.Microsoft.com site oluşturdum. Bu konuya dikkat çekmek için lütfen özellik isteğine oy verin ve/veya yorum yapın.