NantがTeamCityで動作しないのはなぜですか?
-
04-07-2019 - |
質問
ASP.NET MVCプロジェクトをビルドするためにnantをセットアップしましたが、ローカルで正常に動作します。ツールフォルダーにnantを追加し、バージョン管理に追加します。 TeamCityは私の変更を取得してビルドを開始しますが、失敗します。
私は、最新バージョンのNantを使用していると信じており、.net framework 3.5をnant.exe.configに追加しました。サーバーに何が欠けていますか?はい、手動でビルドしてデプロイするとasp.net mvcアプリが機能するため、.netフレームワークがサーバーにインストールされていますか?
ビルドファイルは次のとおりです。
<target name="compile" description="Compiles using the AutomatedDebug Configuration">
<msbuild project="Tolt.Sims.sln" />
</target>
ここにエラーがあります:
BUILD FAILED Failed to initialize the 'Microsoft .NET Framework 2.0' (net-2.0) target framework. Property evaluation failed. Expression: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ Property 'sdkInstallRoot' has not been set. For more information regarding the cause of the build failure, run the build again in debug mode. Try 'nant -help' for more information
解決
NAntのベータ版を使用している場合(現時点では2.0フレームワークよりも大きいものをターゲットにするためのサポートを得る唯一の方法です)、レジストリの問題が発生する可能性があります。同様の問題は、 Tim Barczによって報告されたです。
msbuildの2.0バージョンを指すNAntContrib(msbuildタスクのプロバイダー)に至るまで、ほとんどのものは要約されています。彼のソリューションをチェックして、それがあなたのシナリオに当てはまるかどうか確かめてください。
他のヒント
潜在的に、.NET Framework 2.0 SDKがインストールされていない可能性があります。
次からインストールできます http:// www.microsoft.com/downloads/details.aspx?familyid=fe6f2099-b7b4-4f47-a244-c96d69c35dec&displaylang=en
レジストリに次を追加してこれを修正しました:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFrameworkの新しい文字列値
名前:sdkInstallRootv2.0
値:C:\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \
命を吹き込むように思えた...
w://
これは0.86 beta1リリース後に修正されました。 2010年4月1日に、nantのアップグレードがあなたのためのオプションである場合の修正で0.90がリリースされました。詳細を提供するために、0.90の修正リリースはnant.exe.configファイルへの簡単な変更であったようです。以下の太字のテキストが追加され、2.0 SDKをインストールしなくても問題が解決する可能性があります。
<directory name="${path::combine(sdkInstallRoot, 'bin')}"
if = <!> quot; $ {property :: exists( 'sdkInstallRoot')} <!> quot; / <!> gt;
net-2.0セクションを更新して修正します。
http://www.mail-を参照archive.com/nant-developers@lists.sourceforge.net/msg07519.html ; 0.86 beta1の既知のバグです。
NAntで同様の問題が発生しました。これはベストのソリューションではないことは承知していますが、プロジェクトを動かす必要がある場合に有効なソリューションです。
サーバーに開発環境(C#Expressは機能しませんでしたが、VS 2008は機能しました)をサーバーにインストールすると、この問題がなくなることがわかりました。 (はい、これは通常のベストプラクティスに反することに気付きますが、機能し、スクリプトを実行できるため、コーディングに戻ることができます。)
他の誰かが同じような状況にある場合に共有すると思いました。