簡単な話: TFS 2010 を使用すると、ターゲット サーバーで必要な特定のバージョンの Oracle.DataAcess を使用してビルド サーバーをビルドできません。
この時点で、Oracle、.Net、および OS のバージョンが乱雑に混在しているエンタープライズ全体に対して 1 つのビルド サーバーがあります。私が構築しているプロジェクトは、ビルド サーバーにあるものとは異なるバージョンの Oracle.DataAccess.dll を持つサーバー用です。ローカル マシンでビルドして開発サーバーにデプロイすると、正常に動作します。しかし、ビルドサーバーにクライアントのバージョンを無視させて、私のものを使用させることはできないようです。
pantelif が回答した次のような優れた質問と回答をいくつか読みました: Solution.metaproj エラー MSB3202: プロジェクト ファイル 'xxx' が見つかりませんでした
私はすべてを正しくやっていると思います。プロジェクト内に Ref フォルダーを含め、そこから .dll を直接参照しています。したがって、別の場所から .dll を参照しようとしているわけではありません。
特定のバージョンを false に設定すると、Oracle クライアントのバージョンが間違っていることを知らせる実行時 Oracle エラーが発生します。正しいバージョンの .dll を手動で bin フォルダーにコピーすると、アセンブリが別のバージョンをターゲットにしていることを示すランタイム エラーが発生します。
特定のバージョン = true を設定すると、ビルド サーバーは .dll が見つからないと言います
Class\ProvData.cs (7): The type or namespace name 'Oracle' could not be found (are you missing a using directive or an assembly reference?)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1360): Could not resolve this reference. Could not locate the assembly "Oracle.DataAccess, Version=1.102.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
プロジェクト ファイルを見ると、次のような結果が得られます。
<Reference Include="Oracle.DataAccess, Version=1.102.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342">
<HintPath>Ref\Oracle.DataAccess.dll</HintPath>
<Private>True</Private>
</Reference>
ビルドサーバーがまだ見つからないと言っている理由についてのアイデアはありますか?