У нас есть простая задача, которая перед компиляцией делает все наши файлы AssemblyInfo.cs доступными для редактирования, а затем обновляет
[assembly: AssemblyVersion ("1.0.0.0")]
до
[Assembly: AssemblyVersion ("1.0.0. <SourceGetVersion>
")]
Все наши сборки подписаны одним и тем же ключом.
вероятно, довольно стандартный, и он работает просто отлично, за исключением того, что он вызывает тестовые сбои.
Сбои выглядят так:
Тестовый метод Namespace.Tests.MessageTest.TestMethod вызвал исключение:System.IO.FileLoadException: Не удалось загрузить файл или сборку 'Namespace.BusinessLayer.BusinessComponent.Documents, версия = 1.0.0.4344, Culture = нейтральный, PublicKeyToken = xxxxxxxxxxxxxxxx' или одна из ее зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)
Итак, я включил регистрацию, которая была предложена, и получил это:
W, 3964, 90, 2010/12 /07, 09: 57: 43.059, TFSBUILD \ QTAgent32.exe, Получение пользовательских атрибутов для типа System.Reflection.RuntimeMethodInfo вызвала исключение (будет игнорировать и использовать способ отражения): System.IO.FileLoadException: Не удалось загрузить файл или сборку 'Пространство имен.BusinessLayer.BusinessEntity, версия = 1.0.0.4344, культура = нейтральная, PublicKeyToken = xxxxxxxxxxxxxxxx 'или одна из ее зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040) Имя файла: 'Namespace.BusinessLayer.BusinessEntity, Version = 1.0.0.4344, культура = нейтральной, PublicKeyToken = XXXXXXXXXXXXXXXX' в System.Reflection.CustomAttribute._CreateCaObject (RuntimeModule pModule, IRuntimeMethodInfo pCtor, Byte ** ppBlob, Byte * pEndBlob, Int32 * pcNamedArgs) в System.Reflection.CustomAttribute.CreateCaObject (модуль RuntimeModule, IRuntimeMethodInfo ctor, IntPtr & blob, IntPtr blobEnd, Int32 и именованные Args) в стиле., RuntimeType attributeFilterType, Boolean mustBeInheritable, IList производные атрибуты, Boolean isDecoratedTargetSecurityTransparent) в System.Reflection.CustomAttribute.GetCustomAttributes (метод RuntimeMethodInfo, RuntimeType.TetiteToTjectTyToGUITDTT)Common.ReflectHelper.GetAttributes (MemberInfo info, Boolean bInherit)
=== Информация о состоянии предварительной привязки === LOG: Пользователь = домен \ tfsbuildAccount LOG: DisplayName = Namespace.BusinessLayer.BusinessEntity, Версия = 1.0.0.4344, Культура = нейтральная,PublicKeyToken = xxxxxxxxxxxxxxxx (полностью указан) LOG: Appbase = file: /// D: / Builds / 4/10 / TestResults / tfsbuildAccount-TFSBUILD 2010-12-07 09_56_54_x86_Debug / Out LOG: исходная PrivatePath = NULL вызывающая сборка: Namespace.BusinessLayer.BusinessComponent.Edi.Tests, версия = 1.0.0.4344, культура = нейтральная, PublicKeyToken = xxxxxxxxxxxxxxxx.=== LOG: эта привязка начинается в контексте загрузки по умолчанию.LOG: использование файла конфигурации приложения: D: \ Builds \ 4 \ 10 \ TestResults \ tfsbuildAccount-TFSBUILD 2010-12-07 09_56_54_x86_Debug \ Out \ Namespace.BusinessLayer.BusinessComponent.Edi.Tests.DLL.config LOG: использование файла конфигурации хоста:LOG: Использование файла конфигурации компьютера из C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config.LOG: ссылка после политики: Namespace.BusinessLayer.BusinessEntity, версия = 1.0.0.4344, культура = нейтральная, PublicKeyToken = xxxxxxxxxxxxxxxx LOG: попытка загрузки нового файла URL: /// D: / Builds / 4/10 / TestResults / tfsbuildAccount-TFSBUILD 2010-12-07 09_56_54_x86_Debug / Out / Namespace.BusinessLayer.BusinessEntity.DLL.WRN: сравнение имени сборкивылилось в несоответствие: Редакция
Номер ERR: не удалось завершить настройку
сборки (hr = 0x80131040). прощупывание
прекращено.
Теперь, возможно, я перепутал сборки, публикующие это, но это один и тот же шаблон для всех тестов. Имейте в виду, что все открытые ключи одинаковы, и я вижу, что все номера ревизий одинаковы.
Что мы делаем не так?