web-dev-qa-db-ja.com

Visual Studio 2013ソリューションビルドがビルド順ではありません

「フレッシュ」をビルドするためのC#ソリューションの取得に問題があります。ソリューションをクリーンアップして再度ビルドすると、ビルドされません(数回実行してビルドできます)。依存しているワーカープロジェクトとWebプロジェクトの前にAzureプロジェクトがビルドされるというエラーがあります。ソリューションのほとんどのプロジェクトがどのように探しているかについても

WAT070 : The referenced Assembly {...}/Worker.dll was not found. 
Please make sure to build the role project that produces this Assembly before building this Windows Azure Cloud Service Project.
{...}\VisualStudio\v12.0\Windows Azure Tools\2.2\Microsoft.WindowsAzure.targets 1252    5   AzureProjectName

これで、[プロジェクトの依存関係]-> [ビルド順序]にリストされている順序でプロジェクトをビルドすると、すべてが機能します。また、Azure Projectの前にWebロールとworkロールがリストされています。

26
lockwobr

解決策は非常に簡単です。

[プロジェクトソリューション]を右クリックして[プロジェクトビルド順序の選択]オプションを選択すると、プロジェクトのビルド順序を設定できます。

enter image description here

たとえば、WpfFormApplicaiton1と、 "ClassLibrary1"および "ClassLibrary2"というタイトルの2つのクラスがあります。デフォルトでは、Visual Studioは次のように設定します。

enter image description here

私の要件は、「ClassLibrary2」が「ClassLibrary1」によって使用され、「ClassLibrary1」が「WpfFormApplication1」によって使用されることです。そのため、この要件を満たすために、デフォルトのプロジェクトビルド順序を変更する必要があります。

プロジェクトの依存関係に移動します。 「ClassLibrary1」を選択し、「ClassLibrary2」をその依存関係として設定します。

enter image description here

同様に、「WpfFormApplication1」を選択し、「ClassLibrary1」をその依存関係として設定します。

enter image description here

これで、目的のプロジェクトのビルド順序が設定されました。 Project Build Orderのオプションで確認されています。

enter image description here

解決策は、私の ブログ から取られています。

32
Hassan Rahman

あなたの問題は、依存関係が定義されていないことかもしれません。ビルド順序にはプロジェクトがビルドされる順序が示されていますが、プロジェクトの依存関係で各プロジェクトの依存関係を定義しない場合、msbuildはwaitに依存しません。 。

明確にするために:アイテムが依存関係であるというボックスを実際にチェックしない限り、ビルド順序リスト内のプロジェクトは順次ではなく並行してビルドされます。

Tools->Options->Project and Solutions->Build and Runビルドする並列プロジェクトの数にデフォルト値があること。 enter image description here

したがって、ビルドプロセスが依存関係をビルドするのを待つために、[依存関係]フィールドのすべてが[プロジェクトの依存関係]-> [依存関係]で必要なプロジェクトにチェックされていることを確認してください。

18
malexander

プロジェクトのGUIDがケースによって異なるという問題がありました。プロジェクトファイルを編集して問題を解決しました。すべてのGUIDを大文字に変更しました

6

私もこの問題を抱えていました。私の場合、問題はソリューション内に複数のプロジェクト参照があることでした。他のプロジェクトは、Worker Role(4.5.1 vs 4.5)。

すべてのプロジェクトを同じバージョンのフレームワークを使用するように変更すると、ソリューションが正常にビルドおよび実行されます。

4
Rory McCrossan

この問題がありました。私の場合、VS.Netによって決定されたソリューションのプロジェクトのビルド順序は正しくありませんでした。具体的には、私のWebプロジェクトは3つの依存関係の上にリストされていました。

これら3つの依存関係は、ソリューションエクスプローラーのWebプロジェクトの参照ノードにリストされていました。ただし、プロジェクトの依存関係のダイアログでは、Webプロジェクトはどのプロジェクトにも依存しませんでした。

また、Webプロジェクトには小さな青い感嘆符があり、「Webプロジェクト ''にはSQL Server Expressが必要です。このコンピューターにはインストールされていません。」というメッセージが表示されました。 ASP.NET Web Api:Project require SQL Server Express に基づいてweb.configをいじり、プロジェクトを再ロードすると、感嘆符が消え、プロジェクトの依存関係がダイアログProject Dependenciesおよびビルド順序はこれを正しく反映していました。ただし、テストとしてweb.configの変更を元に戻したとき、依存関係は削除されなかったため、何が問題を修正したのかはわかりません。

とにかく、「プロジェクトの依存関係」ダイアログで、依存関係として自動的に識別されなかったプロジェクトを手動で確認できます。

3
R. Schreurs

作業フォルダに古いファイルが残っていないことを確認してください。これらは、MSBuildで混乱を引き起こす可能性があります。これを回避するには、パス内のすべての古いファイルを破棄して最新の状態にします。

0
Andrew Stringer