7

ASP.NET MVC プロジェクトをビルドするための設定がありませんが、ローカルで正常に動作します。nant を tools フォルダーに追加し、バージョン管理に追加します。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 'Microsoft .NET Framework 2.0' (net-2.0) ターゲット フレームワークの初期化に失敗しました。
プロパティの評価に失敗しました。式: ${path::combine(sdkInstallRoot, 'bin')} ^^^^^^^^^^^^^^ プロパティ 'sdkInstallRoot' が設定されていません。
ビルドの失敗の原因に関する詳細については、ビルドをデバッグ モードで再度実行してください。詳細については、「nant -help」を試してください
4

6 に答える 6

4

NAnt のベータ版を使用している場合 (現在のところ、2.0 フレームワークよりも大きなものをターゲットにするためのサポートを受ける唯一の方法はこれです)、レジストリの問題が発生している可能性があります。同様の問題がTim Barcz によって報告されました。

物事は、msbuild の 2.0 バージョンを指す NAntContrib (msbuild タスクのプロバイダー) に要約されます。彼のソリューションをチェックして、それがあなたのシナリオに当てはまるかどうかを確認してください。

于 2008-10-27T20:44:25.010 に答える
3

レジストリに次を追加して、これを修正しました。

新しい文字列値: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework

名前:sdkInstallRootv2.0

値: C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\

命が吹き込まれたように見えた...

w://

于 2009-04-16T09:20:14.667 に答える
3

これは、0.86 beta1 リリース後に修正されました。2010 年 4 月 1 日に、nant のアップグレードがオプションである場合に備えて、修正を含む 0.90 がリリースされました。詳細を説明すると、0.90 の修正リリースは、nant.exe.config ファイルへの単純な変更のようです。以下の太字のテキストが追加されており、2.0 SDK をインストールしなくても問題を解決できる可能性があります。

<directory name="${path::combine(sdkInstallRoot, 'bin')}" if="${property::exists('sdkInstallRoot')}" />

net-2.0 セクションを更新して修正してください。

于 2010-06-30T21:45:46.260 に答える
1

http://www.mail-archive.com/nant-developers@lists.sourceforge.net/msg07519.htmlを参照してください; これは0.86beta1の既知のバグです。

于 2009-01-08T10:35:17.473 に答える
0

NAntで同様の問題に遭遇しました。これが最善の解決策ではないことはわかっていますが、プロジェクトを動かす必要がある場合に有効です。

サーバーに開発環境 (C# Express は機能しませんでしたが、VS 2008 は機能しました) をインストールすると、この問題が解消されることがわかりました。(はい、これが通常のベスト プラクティスに反することは承知していますが、機能し、スクリプトを実行できるので、コーディングに戻ることができます。)

他の誰かが同様の状況にある場合に備えて共有したいと思いました..(これはCruiseControl.NetとHudsonの両方でうまくいきました)。

于 2010-01-10T17:21:39.063 に答える