Обновление AssemblyVersion в задаче перед сборкой вызывает сбой теста - PullRequest
0 голосов
/ 09 декабря 2010

У нас есть простая задача, которая перед компиляцией делает все наши файлы 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). прощупывание прекращено.

Теперь, возможно, я перепутал сборки, публикующие это, но это один и тот же шаблон для всех тестов. Имейте в виду, что все открытые ключи одинаковы, и я вижу, что все номера ревизий одинаковы.

Что мы делаем не так?

1 Ответ

0 голосов
/ 09 декабря 2010

Попробуйте изменить ссылку в сборе, чтобы она не зависела от версии. «Secific Version = False» на вкладке свойств для сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...