#azure #tfs #visual-studio-2013 #azure-devops #slowcheetah
#azure #tfs #visual-studio-2013 #azure-devops #slowcheetah
Вопрос:
Мы используем SlowCheetah для выполнения app.config
преобразований для проекта. Однако при попытке перенести процесс сборки в Visual Studio Online я больше не могу создавать решение. Сбой сборки, поскольку .dll.config
файл не может быть найден. Я считаю, что это вызвано SlowCheetah.
Вот что мы используем : SlowCheetah 2.5.10.6
. В качестве шаблона сборки я использую этот TfvcTemplate.12.xaml
процесс. Моя версия NuGet — 2.8, и для решения включено восстановление пакета.
Я столкнулся с несколькими похожими проблемами, но большинство решений применимо к VS2012 или более старым версиям SlowCheetah и NuGet.
Обновление от 17 июня
После более тщательного просмотра файла журнала, созданного MSBuild, я обнаружил, что преобразование выполнено успешно, и когда мой проект собран, я вижу в журнале эту строку: Copying file from "objReleaseAssembly.Worker.csproj-sc.App.config" to "C:abinAssembly.Worker.dll.config"
.
Однако у меня также есть проект облачной службы Azure, который создается следующим. Здесь происходит сбой сборки.
Это то, что я нахожу в журнале: C:asrcProjectFolderAssembly.AzureAssembly.Azure.ccproj(101,5): error MSB3030: Could not copy the file "..Assembly.WorkerbinReleaseAssembly.Worker.dll.config" because it was not found.
Таким образом, очевидно, что SlowCheetah создает преобразованный конфигурационный файл и сохраняет его как .csproj-sc.app.config
файл, в то время как проект Azure ищет обычный app.config
файл. Интересно, что локальное построение проекта Azure работает нормально.
Комментарии:
1. Тогда, вероятно, это ошибка в целях Azure. Если он не работает с SlowCheetah, он также завершится ошибкой с BCL NuGet pkg, поскольку они используют тот же метод для обновления app.config.
Ответ №1:
В итоге я исправил проблему, изменив SlowCheetah.Transforms.targets
файл в Properties
папке.
В строке 157 я вставил следующий код, чтобы скопировать преобразованный файл по пути, который ожидает Azure:
<Copy Condition=" '$(_Sc_HasAppConfigTransform)'=='true' "
SourceFiles="$(__SC_IntermediateAppConfig)"
DestinationFiles="$(MSBuildProjectDirectory)binRelease$(MSBuildProjectName).dll.config"
SkipUnchangedFiles="true" ContinueOnError="false" />