web-dev-qa-db-ja.com

Visual Studio 2012が依存プロジェクトをビルドしない

VS2010プロジェクトをVS2012にアップグレードしたところ、依存プロジェクトがオンデマンドで構築されないという問題が発生しました。たとえば、私のソリューションに次のプロジェクトがあるとします。

  • 図書館A
  • ConsoleApp 1

ここで、ConsoleApp 1がライブラリAを参照しています。ライブラリAのクラスのメソッドのシグネチャを変更してConsoleApp 1を実行すると、ConsoleApp 1を実行してもライブラリAが実行されなかったため、変更がConsoleApp 1に表示されないため、コンパイラエラーが発生します。ビルド。

ライブラリAを手動でビルドし、次にConsoleApp 1を手動でビルドすると、正常に動作します。ただし、ConsoleApp 1を実行すると、依存するプロジェクトが起動前に再構築されると思います。

何かが正しく設定されていませんか?それともVS2012のバグですか?

33
user1438940

プロジェクトreferencesを削除してからもう一度追加してみてください(たどるパス:References -> (右クリック) Add reference -> Solution -> Project)。もう一度試す前にSave All。これは私がそれを解決した方法です。

18
user1088520

あなたの症状は 少し前に経験したもの によく似ています。現在のactiveソリューションconfigurationおよびBuild->Configuration Managerの下のアクティブなソリューションプラットフォームでビルドするようにプロジェクトが設定されていることを確認します。

51
spender

これは、ソリューションの.suoファイルがロックされ、Visual Studioがそれを書き込めなくなったときに発生します。この問題のもう1つの症状は、ソリューションを開くと、ソリューションの隣に一時的なsuoファイルが作成されることです。 Visual Studioを閉じて、作業領域内のすべての* .suoファイルを削除してみてください。次に、Visual Studioを再度開き、すべてを再ビルドします。ソリューションを手動で再構築する必要はありません。これは、今日私の同僚に起こったように、ロックされた.suoが原因で発生した問題を修正します。

彼の場合、原因は、Visual Studioが開いている間にラップトップをシャットダウンしたことであると思われました。 Windowsのシャットダウンが正常に完了しなかったのでしょうか? .suoが元々ロックされた方法を推測することしかできません。

19
Clay Fowler

上記の解決策をすべて試しましたが、問題は解決しませんでした。これは、ConfigurationManagerActive configurationがメイン(スタートアップ)プロジェクトのみをビルドするように設定されていたことが原因であることがわかりました。

Build> ConfigurationManagerに移動します

ビルドするすべてのプロジェクトが下のスクリーンショットのようにチェックされていることを確認してくださいこれはAsp.Netフォーラムの同様の問題 here であり、これは [〜#〜] msdnの詳細です[〜#〜] 。奇妙でしたが、私はこれらの設定を変更したことがなく、先週は正しく機能していました enter image description here

7
Has AlTaiar

私は同様の問題に遭遇しました、解決策(または問題)はBuild and Runの下の設定Tools > Options... > Projects and Solutions > Build and Run「スタートアッププロジェクトとRunへの依存関係のみをビルドする」がチェックされた場所。スクリーンショットは、現在機能しているソリューションを示しています。

Visual Studio 2012 Options

6
Korexio

私にとっては、プロジェクトを右クリックして問題を解決します。依存関係の構築>プロジェクトの依存関係。次に、各プロジェクトの順序を手動で設定します。多くのプロジェクトがある場合は非常に苦痛です。

enter image description here

2
Lyon

参照元のプロジェクトの.Netフレームワークのバージョンが、参照先のプロジェクトと同じかそれ以上であることを確認してください。

1
vinu

ソリューションエクスプローラーでソリューションを右クリックし、[ソリューションのクリーン]をクリックします。

0
lorengphd