3

ソリューション ディレクトリの外にクラス ライブラリがあるため、*.sln ファイル "../SomeDependency.csproj" にこのような参照があります。VS ではすべて問題ありませんが、ソリューションをビルドしようとすると TeamCity が失敗しました。すべてのソリューション ディレクトリをコピーするので、関係はもう存在しません。

これは C:\TeamCity\buildAgent\work\799db5684a98650b\blablabla.sln.metaproj エラー MSB3202: The project file "C:\TeamCity\buildAgent\work\799db5684a98650b....\Shared\Libraries\mysecretlib‌ rary \mysecretlibrary.csproj" が見つかりませんでした。

4

1 に答える 1

2

ソリューションの外部にあるクラス ライブラリは、実行可能ファイルまたは dll のいずれかを生成します。ほとんどの場合、dll です。TeamCity を使用する場合、この dll は、外部プロジェクト自体ではなく、プロジェクトで参照する必要があるものです。

外部ライブラリを TeamCity ビルド エージェントでビルドすることに満足している場合は、別のビルド構成を追加してソリューションをビルドし、アーティファクトとして投稿します。その後、プロジェクトへの参照を追加して、このアーティファクトを既知の場所と参照にダウンロードできます。それを直接。(TeamCity ビルドの場合は、ビルド構成でアーティファクトの依存関係として設定できます。ローカル ビルドの場合は、外部アセンブリを自動的に提供する方法を検討することをお勧めします。私は Mercurial を使用していません)

これがうまくいかない場合、他のオプションは、このライブラリをソリューションに組み込むことです。ライブラリが使用される唯一の場所である場合にのみ、これを行ってください。複数の場所で使用されている場合は、TeamCity のアーティファクト参照として互換性のある方法で提供する必要がありますが、ローカル ビルドのアセンブリを提供するのが最善です。

于 2012-11-05T14:54:45.527 に答える