2014-10-25 3 views
1

Я использую Azure Websites git deploy (через Kudu), и все прошло отлично, до сегодняшнего дня. Когда я делаю новый git push, и он пытается развернуть, я получаю это сообщение об ошибке во время моих тестов:FileNotFoundException для Microsoft.VisualStudio.QualityTools.UTFResources при развертывании на Azure-сайтах

Ошибка: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «Microsoft.VisualStudio.QualityTools. UTFResources, Version = 10.1.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'или одна из его зависимостей. Система не может найти указанный файл.

Я не добавлял и не удалял какие-либо библиотеки или другие ссылки из моего решения между последним успешным нажатием и когда я начал получать эти ошибки. Googling ничего не появляется. Этот файл находится в моем локальном GAC, но я не могу найти его ссылкой прямо в любом месте моего решения.

Redeploying old версия моего решения - версия, которая была развернута правильно ранее в тот же день - сбой с тем же сообщением об ошибке.

Если бы я не знал лучше, я бы подумал, что MS изменила что-то на своем конце и сломала куду.

Любые мысли об устранении неполадок, застенчивости открытия билета с помощью Azure?

EDIT - Подробнее:

Это неудовлетворительное во время выполнения модульных тестов. Вот соответствующая часть моей deploy.cmd:

:: 1. Build to the temporary path 
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
    %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\Payboard.Web\Payboard.Web.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="%DEPLOYMENT_TEMP%";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% 
) ELSE (
    %MSBUILD_PATH% "%DEPLOYMENT_SOURCE%\Payboard.Web\Payboard.Web.csproj" /nologo /verbosity:m /t:Build /p:AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release /p:SolutionDir="%DEPLOYMENT_SOURCE%\.\\" %SCM_BUILD_ARGS% 
) 

IF !ERRORLEVEL! NEQ 0 (
    echo Build failed with ErrorLevel !0! 
    goto error 
) 

:: 2. Building test projects 
rem echo Building test projects 
"%MSBUILD_PATH%" "%DEPLOYMENT_SOURCE%\PayboardWeb.sln" /p:Configuration=NoDatabase;VisualStudioVersion=12.0 /verbosity:m /p:Platform="Any CPU" 


IF !ERRORLEVEL! NEQ 0 (
    echo Build failed with ErrorLevel !0! 
    goto error 
) 

:: 3. Running tests 
echo Running tests 
vstest.console.exe "%DEPLOYMENT_SOURCE%\Payboard.Common.Tests\bin\NoDatabase\Payboard.Common.Tests.dll" 
IF !ERRORLEVEL! NEQ 0 goto error 
vstest.console.exe "%DEPLOYMENT_SOURCE%\Payboard.Model.Tests\bin\NoDatabase\Payboard.Model.Tests.dll" 
IF !ERRORLEVEL! NEQ 0 goto error 
vstest.console.exe "%DEPLOYMENT_SOURCE%\Payboard.Services.Tests\bin\NoDatabase\Payboard.Services.Tests.dll" 
IF !ERRORLEVEL! NEQ 0 goto error 
vstest.console.exe "%DEPLOYMENT_SOURCE%\Payboard.Integrations.Tests\bin\NoDatabase\Payboard.Integrations.Tests.dll" 
IF !ERRORLEVEL! NEQ 0 goto error 
vstest.console.exe "%DEPLOYMENT_SOURCE%\Payboard.Web.Tests\bin\NoDatabase\Payboard.Web.Tests.dll" 
IF !ERRORLEVEL! NEQ 0 goto error 

Это неудачу во время первого вызова vstest.console.exe, после того, как успешно работает целая куча модульных тестов, но до окончания. Вот пример файла журнала:

Passed ConditionalFormatting_ShouldHandleSimpleConditions 
Passed ConditionalFormatting_ShouldHandleComplexNumericConditions 
Passed ConditionalFormatting_ShouldHandleNullStrings 
Passed ConditionalFormatting_ShouldHandleNullObjects 
Error: Exception thrown executing tests in D:\home\site\repository\Payboard.Common.Tests\bin\NoDatabase\Payboard.Common.Tests.dll 
Passed ShallowClone_ShouldCopyIntegers 
Passed ShallowClone_ShouldCopyNullableIntegers 
Error: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.QualityTools.UTFResources, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 
Passed ShallowClone_ShouldCopyStrings 
File name: 'Microsoft.VisualStudio.QualityTools.UTFResources, Version=10.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
Passed ShallowClone_ShouldNotCopyReferences 
Passed ShallowClone_ShouldReturnNullIfSourceIsNull 
Server stack trace: 
Passed ShallowCopyTo_ShouldCopyIntegers 
    at Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute..ctor(Type exceptionType, String noExceptionMessage) 
Passed ShallowCopyTo_ShouldCopyNullableIntegers 
    at Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute..ctor(Type exceptionType) 
Passed ShallowCopyTo_ShouldCopyStrings 
    at System.Reflection.CustomAttribute._CreateCaObject(RuntimeModule pModule, IRuntimeMethodInfo pCtor, Byte** ppBlob, Byte* pEndBlob, Int32* pcNamedArgs) 
Passed ShallowCopyTo_ShouldNotCopyReferences 
    at System.Reflection.CustomAttribute.CreateCaObject(RuntimeModule module, IRuntimeMethodInfo ctor, IntPtr& blob, IntPtr blobEnd, Int32& namedArgs) 
Passed ShallowCopyTo_ShouldNotCopyExceptions 
    at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) 
Passed ShallowCopyTo_ShouldNotCopyExceptionExpressions 
    at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeMethodInfo method, RuntimeType caType, Boolean inherit) 
Passed GetFriendlyTypeName_ShouldHandleSimpleTypes 
    at System.Reflection.RuntimeMethodInfo.GetCustomAttributes(Boolean inherit) 
Passed GetFriendlyTypeName_ShouldHandleComplexTypes 
    at NUnit.Core.Reflect.GetAttributes(ICustomAttributeProvider member, Boolean inherit) 
Passed GetFriendlyTypeName_ShouldHandleReallyComplexTypes 
    at NUnit.Core.Reflect.HasAttribute(ICustomAttributeProvider member, String attrName, Boolean inherit) 
Passed MultiDateTimeConverter_ShouldSupportMultipleFormats 
    at NUnit.Core.Reflect.HasMethodWithAttribute(Type fixtureType, String attributeName, Boolean inherit) 
Passed OrIfGreater_ShouldSelectGreaterValue 
    at NUnit.Core.Builders.NUnitTestFixtureBuilder.CanBuildFrom(Type type) 
Passed OrIfGreater_ShouldSelectRealValue 
    at NUnit.Core.Extensibility.SuiteBuilderCollection.CanBuildFrom(Type type) 
Passed OrIfLesser_ShouldSelectGreaterValue 
    at NUnit.Core.TestFixtureBuilder.CanBuildFrom(Type type) 
Passed OrIfLesser_ShouldSelectRealValue 
    at NUnit.Core.Builders.TestAssemblyBuilder.GetFixtures(Assembly assembly, String ns) 
Passed GetKey_ShouldSupportStrings 
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) 
Passed GetKey_ShouldSupportInts 
    at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites) 
Passed GetKey_ShouldSupportDates 
    at NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package) 
Passed ForEachParallel_ShouldExecuteAllActions 
    at NUnit.Core.TestSuiteBuilder.Build(TestPackage package) 
Passed ForEachParallel_ShouldExecuteWithMaxParallelization 
    at NUnit.Core.SimpleTestRunner.Load(TestPackage package) 
Passed SelectParallel_ShouldSelectAllData 
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
Passed SelectParallel_ShouldSelectWithMaxParallelization 
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
Passed SortOfMatches_ShouldMatchSameUrls 
    at NUnit.Core.RemoteTestRunner.Load(TestPackage package) 
Passed SortOfMatches_ShouldIgnoreQueryStrings 
    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 
Passed SortOfMatches_ShouldIgnoreShortPrefixes 
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg) 
Passed SortOfMatches_ShouldNotMatchOnPathMismatch 
Passed SortOfMatches_ShouldNotMatchOnHostMismatch 
Exception rethrown at [0]: 
Passed MainDomain_ShouldRemoveWww 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
Passed MainDomain_ShouldRemoveApp 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
Passed MainDomain_ShouldNotRemoveExample 
    at NUnit.Core.TestRunner.Load(TestPackage package) 
Passed MainDomain_ShouldNotRemoveMainDomain 
    at NUnit.Util.TestDomain.Load(TestPackage package) 
Passed MainDomain_ShouldHandleCountryDomains 
    at NUnit.VisualStudio.TestAdapter.NUnitTestExecutor.RunAssembly(String assemblyName, ITestExecutionRecorder testLog, TestFilter filter, IRunContext runContext) 
Total tests: 117. Passed: 116. Failed: 0. Skipped: 1. 
Test execution time: 7.5134 Seconds 
An error has occurred during web site deployment. 
Test Run Failed. 

Я хотел бы отметить, что если я закомментировать вызовы модульных тестов, я могу получить его развернуть. Поэтому я предполагаю, что вопрос в основном - что я могу сделать, чтобы снова запустить мои модульные тесты? Возможно ли, что недавнее обновление веб-сайтов Azure, поддерживавшее, помимо прочего, TypeScript 1.1, возможно, удалило Microsoft.VisualStudio.QualityTools.UTFResources.dll из GAC? Или что-то вдоль этих линий?

+0

Чтобы устранить неполадки, может ли это произойти и при развертывании на новом сайте? Кроме того, Kudu не запускает тесты по умолчанию.У вас есть собственный сценарий развертывания, который делает это? Можете ли вы дать немного больше информации о развертывании, так что покажите, на каком этапе это происходит? –

+0

@DavidEbbo - Спасибо, что ответили. Я добавил несколько подробностей. –

+0

Спасибо за дополнительную информацию. Могли ли вы попробовать с чистым сайтом, чтобы убедиться, что это не из-за чего-то, что попало в плохое состояние на этом сайте? В идеале, если вы можете поделиться публичным репо, которое демонстрирует неудачу, это поможет расследованию. Репозиции, которые мы используем, которые выполняют модульные тесты, по-прежнему работают с последними, поэтому должна быть какая-то разница. –

ответ

2

Как обсуждалось в комментариях, это, по-видимому, является недавней регрессией. Я открыл https://github.com/projectkudu/kudu/issues/1370 для отслеживания и обсуждения.

+0

Спасибо! Я прослежу его там. –

+0

Я пробовал обходное решение, упомянутое в проблеме GitHub, но когда я сменил сборку с 10.1.0.0 до 10.0.0.0, тестовый проводник не нашел модульного теста. –

5

Посмотрите здесь:

https://developercommunity.visualstudio.com/content/problem/35104/systemiofilenotfoundexception-utfresourcesdll.html

Предложение было разыменовываются Microsoft.VisualStudio.QualityTools.UnitTestFramework и добавить NuGet пакеты MSTest.TestFramework и MSTest.TestAdapter

В моем определении сборки VSTS мне также пришлось изменить процесс оформления, чтобы очистить Все Bui ld Справочники

Это решило исключение FileNotFound, которое я получал для одной и той же DLL.