から正しくなく、プロジェクト参照を持つプロジェクトをビルドします。しかし、MSBuildでB.csprojとC.csprojを別々にビルドすると、エラーは発生しません。また、VS IDEでA.slnをビルドするとエラーが発生しません。私は.NET 2.0フレームワークを使用しています。下記のslnとprojをビルドするためのスクリプトを見てください。のMSBuildは、ソリューション
MSBuild "<path>/A.sln" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\A.sln.log /verbosity:normal
MSBuild "<path>/B.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\B.csproj.log /verbosity:normal
MSBuild "<path>/C.csproj" /p:Configuration=Release /p:StartupObject="" /p:WarningLevel=4 /p:Optimize=true /t:rebuild /l:Filelogger,Microsoft.Build.Engine;logfile=F:\C.csproj.log /verbosity:normal
編集:スロー
すべてのエラーは、(すべてのプロジェクト参照です)referncesを逃すためのコードからです。私は以下のような3種類のエラーだけを得ます。
エラーCS0012:タイプ 'X'は、参照されていないアセンブリ内で と定義されています。 あなたは、アセンブリ 'Y、バージョン= 2.0.0.0、文化=中立、 なPublicKeyToken = aad4cbe5d7c27078' への参照を追加する必要があります。
エラーCS0234:型または名前空間 名「X」は 名前空間「Y」に存在しません
エラーCS0246(あなたが アセンブリ参照が不足している?):型または名前空間 名 ' X」(あなた がusingディレクティブまたは アセンブリ参照が不足している?)が見つかりませんでし
私はIDEとMSBuildの両方から構築する前に、ビルド・パスからのすべての以前に構築されたDLLをクリア。しかし、IDEはうまく動作し、プロジェクトの "Refrences"セクションに参照漏れインジケータが表示されません。
なし基準パスはIDEに手動で追加しません。
別の更新:
私はちょうど私が溶液から両方のプロジェクトを開くと、参照が正しくIDEを指していることに気づきました。しかし、私はIDEで別々にプロジェクトを開くと、MSBuildで発生したと言われていた不足している参照が這い上がります。非常に悪い。
だから美貌私のために非常に気難しい。大いに感謝します。Buiilding .proj MSBuildの中で、要約する - グッド
Buiilding .proj IDEで - エラー
Buiildingの.sln MSBuildのでは - エラー
Buiildingのの.sln IDEで -
質問があり、エラーがあると言ったら、エラーを切り取って貼り付けるのが本当に役に立ちます。これは、例外、コンパイラエラー、ビルドエラーのために行く... –
それは2つのプロジェクトを個別に問題なく構築する場合は、2つのプロジェクトは、プロジェクトの参照が必要かどうかと思う。これはMSBUILDがプロジェクト参照を「スマート」にできるようにする最近の機能のために機能している可能性があります。私はその特徴を理解していないので、私はそれを排除することはできません。すべてのプロジェクトの参照が必要かどうか、Bの再ビルドによってCの再構築が行われるかどうかを確認することをお勧めします。 –
@blntechie:更新いただきありがとうございます。ソリューションエクスプローラを使用することをお勧めします。各参照を順番に選択し、[プロパティ]ウィンドウで詳細を確認します。 objにあるものとbinにあるもののような、奇妙なものを見てください。また、参照パスがない場合、実際には存在しないことを確認するために、.csproj.userファイルを調べるのに気にする必要はありませんか? –