Предупреждение о том, что не удалось разрешить родинки на сервере сборки - PullRequest
4 голосов
/ 05 января 2012

Мы используем родинки 0,94 для некоторых тестов в нашем решении. Однако каждый раз, когда он впервые компилируется, сервер сборки будет выдавать пару предупреждений:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1360): Could not resolve this reference. 
Could not locate the assembly "XXX.Moles, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL". 
Check to make sure the assembly exists on disk. 
If this reference is required by your code, you may get compilation errors.

Насколько я понимаю, сервер сборки будет пытаться разрешить все ссылки тестового проекта перед началом сборки, и если он не сможет найти библиотеку moles в папке molesassembly (поскольку в первый раз он пуст), выдаст предупреждение, как указано выше.

Но когда msbuild начнет сборку этого тестового проекта, сборки mole будут сгенерированы и скопированы в папку moleassemblies, поэтому это не приведет к ошибке.

Таким образом, в первый раз сборка будет выполнена частично, а в следующий раз - полностью.

Мы стараемся не получать никаких предупреждений на сервере сборки. Можно ли как-нибудь устранить это предупреждение на сервере сборки?

1 Ответ

3 голосов
/ 06 января 2012

Все сторонние сборки хранятся в папке «Сборки» в корневой папке проекта. Все сторонние сборки, используемые в любом из наших проектов, упоминаются здесь. Папка сборок входит в TFS.

Похоже, что вы ссылаетесь на сборки XXX.Moles из выходной папки, а не какой-либо общей (сборки) папки. Попробуйте обновить ссылки, чтобы использовать сторонние библиотеки из папки Assemblies вместо выходной папки вашего тестового проекта.

РЕДАКТИРОВАТЬ: Попробуйте добавить проверку, существует ли сборка XXX.Moles в тег ссылки, например ::10000

<Reference Condition="Exists('..\molesassemblies\XXX.Moles.dll')" Include="XXX.Moles.dll">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\molesassemblies\XXX.Moles.dll</HintPath>
</Reference>
...