7

最近VS.NET2012にアップグレードしましたが、デバッグ時に非常に苛立たしい問題が発生し始めました。

プロジェクトAにはプロジェクトBへのプロジェクト参照があります。プロジェクトBを編集するとき、プロジェクトAのビルド/デバッグのアクションがプロジェクトBの変更を検出し、プロジェクトAのビルド中に自動的に含めることを期待します(それはちょっとポイントです)プロジェクトの依存関係について。)そして、それはまさにVS2010で起こっていたものです。

しかし、これは2012年には発生しません。実際、プロジェクトBを明示的にビルドしても、プロジェクトAを再構築しない限り、プロジェクトAはその変更を取得しません。

そのため、プロジェクトBを明示的にビルドしてから、プロジェクトAに戻り、プロジェクトBの変更を含めるために、プロジェクトAを明示的に再構築する必要があります。

考え?

4

5 に答える 5

6

ソリューションに依存プロジェクトを設定しましたか?

以下から設定できます。

ソリューションを右クリック->プロパティ->プロジェクトの依存関係

ところで、ソリューションをビルドしたのは Visual Studio IDE ですか、それとも msbuild コマンドですか?

msbuild を使用してプロジェクトをビルドする場合は、プロジェクト ファイルに DependsOnTargets 属性を追加する必要があります。

参照できる詳細情報:

http://msdn.microsoft.com/en-us/library/ms366724.aspx

于 2012-11-09T11:33:30.230 に答える
3

3 番目の段落は、依存関係のしくみに関する誤解を示しているようです。私が間違っていたら許してください。

プロジェクト A がプロジェクト B に依存している場合、プロジェクト B をビルドしてもプロジェクト A が強制的に再ビルドされることはありません。ただし、プロジェクト A をビルドすると、プロジェクト B の変更を確認し、必要に応じて B を自動的に再ビルドする必要があります。

この場合のプロジェクト A は、親プロジェクトまたはルート プロジェクトです。親をビルドすると、依存するすべてのプロジェクトがチェックされ、古い場合は再ビルドされます。常に親をビルドすると、古い依存関係が最初に自動的にビルドされ、次に親プロジェクトがビルドされ、依存関係の新しい変更が反映されます。

A
 \
  B
  |\
  C D

この例では、B に依存関係がある場合、それらもビルドされます。B を明示的にビルドした場合、その依存関係である C と D はチェックおよび再ビルドされますが、A は再ビルドされません。

A を明示的にビルドした場合、最初に C と D がチェックされ、必要に応じて再ビルドされ、次に B、最後に A になります。

于 2012-11-13T17:18:22.073 に答える
1

以前にも同様の問題がありましたが、その原因は、A の B への参照が、「プロジェクト参照」ではなく、(DLL ファイルへの) 通常の参照であったことです。この状況は確かにあなたが見ている行動を説明するでしょう.

確認するにProjectA.csprojは、テキスト エディターで調べ、すべての要素<Reference><ProjectReference>要素を調べて、それらが本来あるべき姿であることを確認します。

于 2013-05-23T16:47:15.267 に答える
0

これの潜在的な原因の1つは、ロックされた.suoファイルです。この質問に対する私の答えを参照してください:

VisualStudio2012は依存プロジェクトを構築していません

于 2012-11-26T18:53:19.080 に答える
0

継続的インテグレーション (CI) サーバーを探していると思います。ソース リポジトリを監視するように CI を構成し、新しい変更がコード ベースにコミットされたときにターゲット アセンブリをビルドするようにトリガーすることができます。

それ以外の場合は、他の人が述べたように、プロジェクトの依存関係を使用して、参照されたアセンブリを再構築できます。

于 2012-11-13T19:35:49.950 に答える