5

ASP.NET Web サイトを含むソリューション ファイルがあります。

を使用して.NET 4.0 Beta 2でソリューションを構築すると

"c:\WINDOWS\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe" d:\MyPath\MySolution.sln

すべて正常に動作し、エラーはありません。次に、CruiseControl .NET タスク (サービスによって実行される msbuild-script) を使用して同じソリューションを構築しようとしましたが、同じソリューションは次のように失敗します。

D:\MyPath\MyWebSite.metaproj (,): errorMSB4025: プロジェクト ファイルを読み込めませんでした。ファイル 'D:\MyPath\MyWebSite.metaproj' が見つかりませんでした。

もちろん、そのようなファイルはありません。*.metaproj は、Web サイト用に動的に生成される .csproj のような msbuild ファイルだと思います...

しかし、エラーを修正する方法がわかりません...メタプロジェクトファイルをグーグルで検索しようとしましたが、うまくいきませんでした。ファイルを手動で作成しようとしましたが、 <Project> を <Task Name="Rebuild"> で挿入しましたが、コンパイルでエラーは発生しませんでしたが、サイトはコンパイルされなかったと思います。

同じマシンには、.NET 3.5 および .NET 4.0 プロジェクトと、両方のフレームワークの環境変数があります。

4

6 に答える 6

3

ソリューション ファイルでプロジェクトの依存関係を取り除くことができれば、これを回避する方法があります。プロジェクトの依存関係をプロジェクト ファイルに保持し、ソリューション ファイルからは削除できます。
このAnswerについては、このリンクを参照してください。

于 2009-10-28T17:55:46.973 に答える
1

tfs2008ビルドサーバーでも同じ問題が発生します。4.0msbuildを使用するようにtfsbuilderサーバー構成を切り替えると、これと同じ問題が発生し始めました。msbuildを手動で実行すると問題なく、ログにmetaprojファイルのビルドと表示されますが、自動ビルドプロセスでは失敗します。

ラス

于 2009-10-26T14:46:08.143 に答える
1

Visual Studio 2010 の最終リリースでは、このバグが修正されました。

于 2010-04-26T13:37:25.290 に答える
1

私は CruiseControl の議論を読み、CruiseControl.net と同じコマンドを実行しようとしました。

ディレクトリ名にスペースがあると、Cruise Control で msbuild が失敗します!! ??

そのため、クルーズ コントロールのディレクトリをスペースなしで明示的に指定します。以下の例。

<Project name="ProjectNameHere"> <workingDirectory>c:\dev\work\ProjectNameHere\WorkDir</workingDirectory> <artifactDirectory>c:\dev\work\ProjectNameHere\Artifacts</artifactDirectory> ...

于 2010-01-24T20:41:12.803 に答える