これが背景です。2 つのプロジェクト (service.csproj と client.csproj) を含むソリューション ファイル (a.sln) があります。3 つのプロジェクト (service.csproj、client.csproj、test.csproj) を含む別の古いソリューション ファイル (b.sln) があります。このソリューション ファイルとテスト プロジェクトも使用しません。
コンパイルには NANT スクリプトを使用します。NANT 内では、「devenv.com」を呼び出す を使用し<exec> task
てソリューション ファイルをコンパイルします。ビルド スクリプトにいくつかの変更を加えようとしていた (ビルド中にその場でサービスのプロキシを生成する) ため、service.csproj ファイルだけをコンパイルしようとしました。以下に示すように、NANT スクリプトを更新しました。
<exec program="${visualstudio.install.dir}\devenv.com" commandline=""${base.dir}\Service.csproj" /rebuild ${config}" failonerror="true" />
しかし、上記の行が実行されると、コンパイルされます(次の順序で)
を。client.csproj b. c.service.csproj test.csproj
service.csproj には、クライアント プロジェクトとテスト プロジェクトへのプロジェクト参照がありません。
正確に何が起こっているのか、クライアント/テストプロジェクトがどのようにコンパイルされているのかを知るために頭を悩ませました。
これは私が見つけたものです。次のフォルダー構造があります。
MyFolder ->
-> Service
service.csproj
b.sln
-> Client
client.csproj
-> Test
test.csproj
a.sln
b.sln は廃止され、使用されていないため、MyFolder -> Service フォルダー (service.csproj ファイルと同じフォルダー) にありました。(私の新しい会社の開発者はこれに非常に不満を持っているため、未使用のファイルを削除せず、名前を _old に変更し続けています。)
devnenv.com は、どうにかして b.sln ファイルからプロジェクト ファイルを取得し、コンパイルしていました。私は b.sln ファイルを削除し、スクリプトは問題なく service.csproj をコンパイルします。ソリューション ファイル。
何が起こっているのか誰にも分かりますか?