2011-01-04 18 views
11

私はMSBuild(CruiseControl)を使用して.NET 4アプリケーションのインストールを構築しようとしています。インストールビルドでは、前提条件(この場合は.NET 4およびWindowsインストーラ4.5)をインストールするための昇格ラッパーを作成する必要があります。これはGenerateBootstrapper Taskを使用して行います。MSBuild:エラーMSB3147:必要なファイル 'setup.bin'が見つかりませんでした

VS 2010がインストールされている開発マシンのコマンドラインからMSBuild.exe project.msbuild.xmlを実行すると正常に動作します。唯一、最新のWindows 7 SDKを持っているビルドマシン上で実行すると、エラーで失敗します。

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

、私はsetup.binファイルを含むC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Engineフォルダを持っていませんが、ビルドマシンに何がありますBootstrapperフォルダ内にC:\Program Files\Microsoft SDKs\Windows\v7.1(7.1対7.0Aは明らかにVS2010が7.0Aをインストールするが、スタンドアロンSDKは7.1です)。

また、ビルドマシンに存在しHKLM\Software\Microsoft\GenericBootstrapper\内部には4.0のレジストリキーはありませんが、DEVのマシンは、私が上でインストールする必要があるものがありますように見えますc:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\

の値を持つパス文字列を含むものを持っていますBootstrapperフォルダを「Microsoft SDKs \ Windows \ v7.1」(およびレジストリキーの設定)に追加するためのマシンをビルドしますが、それが何であるかわかりません。私は何を得る必要がありますか?

また、インストールビルドの作業に必要なものがありますか?

更新日:を私は、この手動ビルドマシン上でのdevのマシンから7.0Aブートストラップフォルダをコピーし、手動で HKLM\Software\Microsoft\GenericBootstrapper\4.0レジストリキーへのパスを追加することにより、現時点で働いています。これはうまくいくようですが、問題を解決するためにこれを行うことはできません。だから私は誰かがこれにあまりハックな解決策を持っていることを感謝します。

+0

7.0Aブートストラップをコピーして手動でregキーを追加する上記の変更は、私が抱えていた問題を修正しました。私はまだ、よりハックの少ないソリューションを探しています – IndigoDelta

+2

そのマシンに.Net 4.5ベータ版をインストールしましたか?私はワークステーションで4.5を完全にアンインストールするまで(4.5またはVS11を参照してプログラムを追加/削除する)、MSDNから4.0を再インストールするまで、私のワークステーションで同様の問題が発生しました。 –

+0

いいえ、この質問は2011年1月からのものだったので、4.5ベータ版が利用できるようになりました。 – Wilka

答えて

4

t his blog entryによれば、ブートストラップファイルは、.NET Framework SDKのインストール時にインストールされます。また、bootstrapperディレクトリを検索するために検索されるレジストリエントリも表示されます。

.NET Framework SDKをインストールするか、ファイルをコピーしてレジストリエントリを追加して手動でセットアップすることができます。

+1

Hmmm、ビルドマシンにはすでに.NET SDKとWindows SDK(これもインストールする必要があります)がありましたが、再インストールを試みたが、問題は修正されませんでした。私はファイルのコピーだけを検討しましたが、それが他の問題を引き起こすかどうかはわかりませんでした.Devマシンには7.0Aがあり、ビルドマシンは7.1だから、7.0Aをコピーすることはできません。私はちょうど何が起こるか見るだろうと思う。 – Wilka

+1

それはうまくいくようですが、間違った解決策のように感じます。誰かがあまりハックのないソリューションを提供する場合に備えて、この回答を受け入れる前にちょっと待っています。しかし、ありがとう、私は今再び建物をインストールしています。 – Wilka

+0

参考文献:[このブログ](http://jake.ginnivan.net/clickonce-bootstrapping-errors/)では、何らかの理由でウィンドウがファイルへの参照を失っていることがわかります。したがって、レジストリキーを追加して、エンジンフォルダをプロジェクトフォルダにコピーしても、この問題は解決されません。 –

2

私は同じ問題を抱えていますが、ファイルを手動でコピーしてレジストリをハッキングしていないと思いますが、他の人からもそのように成功したと聞いたことがあります。

これより実際の解決策を得るために、必要な開発ファイルを使ってビルドサーバーを簡単にセットアップできるように、Visual Studioの最小限のインストールを実装するためにfeature request on the Connect.Microsoft.com siteを作成しました。この問題に注意を促すために、機能リクエストに投票してください。

関連する問題