10

ローカルでは正常に動作するビルドがありますが、TFS 環境内ではビルドされません。

次のエラーが表示されます。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1578): この参照を解決できませんでした。アセンブリ "Assembly.Services.Common" が見つかりませんでした。アセンブリがディスク上に存在することを確認してください。コードでこの参照が必要な場合、コンパイル エラーが発生する可能性があります。

問題のアセンブリは TFS にチェックインされ、次の場所にあります。

/ルート/BaseBinRefs/Assembly.Services.Common.dll

.net フレームワーク以外の外部参照はありません。

ビルドに失敗しているプロジェクトは、TFS の次の場所にあります。

/ルート/サービス/AssemblySolutionFolder/AssemblyThatIsFailing

アセンブリはソリューション内のプロジェクトで参照されており、アセンブリへの HintPath は正しいように見えます。

   <Reference Include="Assembly.Services.Common, Version=1.0.0.0, 
      Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\BaseBinRefs\Assembly.Services.Common.dll</HintPath>
    </Reference>

前述のように、ローカルでビルドされ、TFS 内で失敗する理由がわかりません。これに対する注意点は、私は一般的に TFS に不慣れであり、まだ最初のプロジェクトをこの環境に統合しようとしているということです。

更新 1

ProcessMonitor を使用すると、TFS がファイルをロードしようとしていることがわかります。

C:\Builds\1\Root\BaseBinRefs\Assembly.Services.Common.dll

これは存在しませんが、相対的な意味では正しいです。ここで、Sources ディレクトリを見ると、Assembly.Services.Common.dll が含まれている BaseBinRefs が表示されるので、それらをダウンロードしました (BaseBinRefs をビルド定義に追加しました)。

4

1 に答える 1

11

これは、ビルド定義 (ワークスペースの下) での作業フォルダーの設定方法に問題がある可能性があります。

あなたのパススキームを正しく理解していれば、次のようにパスを設定する必要があります。

Active |$/TeamProject/Root/BaseBinRefs/                    |$(SourceDir)\Root\BaseBinRefs
Active |$/TeamProject/Root/Services/AssemblySolutionFolder/|$(SourceDir)\Root\Services\AssemblySolutionFolder

一方、たとえば、これは問題を引き起こす可能性があります。

Active |$/TeamProject/Root/BaseBinRefs/                    |$(SourceDir)\
Active |$/TeamProject/Root/Services/AssemblySolutionFolder/|$(SourceDir)\
于 2012-08-24T09:54:39.107 に答える