2012-02-17 10 views
3

TFS 2010チームビルドの一部としてBiztalk 2009プロジェクトをビルドするには、MSBuild execタスクを使用してVS2008 devenv .exeのように。VS2008を使用してBiztalk 2009ソリューションをコマンドラインでビルドする際の.NETランタイムエラーdevenv.exe

<Exec Command="&quot;$(BuildMachineLoc)devenv.exe&quot; &quot;$(BiztalkSolutionPath)&quot; /Build &quot;$(BuildFlavor)&quot; /out &quot;$(DropLocation)\$(BuildNumber)\CoreBiztalkBuildOutputLog.txt&quot;"/> 

これは約95%の時間で正しく動作します。ただし、ランダムにログが次のエラーでビルドに失敗します。あなたは、それはすべてが正常にビルドされることを示してCoreBiztalkBuildOutputLog.txtファイルをチェックすると

Build FAILED. 
MSB3073: The command ""C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" "[path to my solution]" /Build "Release" /out "[path to my drop location]\CoreBiztalkBuildOutputLog.txt"" exited with code -2146233082. 

を(私が構築していたサービスの名前を省略し、わずかにこれを編集しました)。失敗したビルドのログを成功したビルドと比較すると、それらは同じです。

コード-2146233082はあまり説明的ではありません。そのため、ビルドマシンのイベントビューアから実際の例外が検出されました。

Event Type: Error 
Event Source: .NET Runtime 
Event Category: None 
Event ID: 1023 
Date:  2/17/2012 
Time:  2:58:41 AM 
User:  N/A 
Computer: XXXXXXXX 
Description: 
.NET Runtime version 2.0.50727.3625 - Fatal Execution Engine Error (7A0BC59E) (80131506) 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. 

ネットで少し突っ込んでいることは、これが何らかのCLRエラーであることを示しています。推奨される解決策は.NET Frameworkを修復することです。これまで私が使っていたビルドマシンは、所有している限り、さまざまな問題を抱えていた7歳の恐竜でした。 (〜2年)

Biztalk 2009のビルドを実行するための新しいVMのプロビジョニングが終了したので、古い物理サーバーを完全にリタイアすることができました。しかし、私の不気味さには多大な影響を与えていますが、私は新しいサーバーでこの同じランダムCLRエラーが約5%発生していることがわかりました。

これに基づいて、これは私が修正できない.NETフレームワークの何らかの欠陥であると推測しています。しかし、誰かがアイデアを持っているならば、私はすべての耳です。それは$(BuildFlavor)Configurationまたはあなたが持っているかもしれArchitectureプロパティを決定するかどうかあなたの例からも明らかではありませんので

<MSBuild Projects="$(BiztalkSolutionPath)" 
    Targets="Build" 
    Properties="Configuration=$(BuildFlavor);" /> 

+0

[MSBuildタスク](http://msdn.microsoft.com/en-us/library/z7f65y0d%28v=vs.90)を使用する代わりに、EXEC devenv.exeでソリューションをビルドする特別な理由はありますか? %29.aspx)? – Filburt

+0

これは以前のBizTalk管理者によって実装されたため、これについて100%確信していません。しかし、パイプラインやオーケストレーションなどでBiztalk 2009ソリューションを構築するには、Visual Studioを使用してビルドする必要があります。 (devenv.exeにexec'ingすることでVisual Studioセットアッププロジェクトを構築する必要があります) –

+0

私はMSBuildタスクを使用してソリューションではなくBizTalkプロジェクトを構築しています。私が見たことから、セットアッププロジェクトは別の束になるかもしれません。 – Filburt

答えて

1

あなたはMSBuildのタスクを試してみることにしたい場合は、ここにあなたの例から翻訳されたタスクですあなたの必要に応じてこれを変更してください。

OutputPathはプロジェクトレベルで設定されます。私は個人的にMSBuildタスクOutput Taskparameterを使用して、構築されたアセンブリを取得します。 (BTSTaskを使用して)BizTalkに展開する場合、BizTalkアセンブリを目的のディレクトリにコピーすることができ、ビルドタスクで気にする必要はありません。

ブライアンは、BizTalk Deployment Frameworkを調べる価値があるかもしれないと示唆していますが、そうでなければ実行中のソリューションを放棄することは、あなたにとってオプションではないことは明らかです。

+0

私たちはすでにBTDFを使用しています。このステップは、BTDFがMSI作成を行う前にコンパイルを実行します。私はビルドを呼び出すためにMSBuildタスクを使用することに非常に精通していますが、Visual Studioを使用してコンパイルを実行する必要があるという印象を受けました。それは私が今週ショットをつけて、すべてをコンパイルするためのまっすぐなMSBuildタスクが動作するかどうかを確認します。 –

関連する問題