Мы пытаемся установить чистую сборку новейшей версии Kentico (12) на Azure, используя Kudu, в конфигурации DEBUG.Мы традиционно достигаем этого, устанавливая SCM_BUILD_ARGS в -p:Configuration=Debug
, и все хорошо.Но по какой-то причине в этой более новой версии проект не удается скомпилировать, и я вижу, что эта команда выполняется:
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "C:\Users\User\Documents\GitHub\Project\CMS\CMSApp.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="C:\local\Temp\8d6d315018f5ff9";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false /p:SolutionDir="C:\Users\User\Documents\GitHub\Project\.\\" -p:Configuration=Debug
Обратите внимание на Configuration = Release и Конфигурация = Debug .Ошибки компиляции - это что-то вроде Invalid expression term 'string'
в следующей строке кода:
bool licenseOK = LicenseHelper.CheckLicenseLimitations(FeatureEnum.Ecommerce, out int skuCount, out int maxSKUCount);
Это вообще не выделяется в Visual Studio в Debug или Release Режим.Я также могу воспроизводить локально (как показано в моих путях выше), и если я изменяю две конфигурации на обе одинаковые (независимо от того, выберу ли я Отладка или Выпуск), он прекрасно компилируется.
Что я могу сделать, так это создать свой собственный файл сценария команды развертывания в качестве обходного пути, но, думаю, я не понимаю, почему вышеуказанная команда MSBUILD не работает с самого начала.
Любойидеи о том, почему это будет работать отлично для всех моих проектов ASP.NET до этого?Единственное, что я знаю, это то, что недавно в Kentico был включен компилятор Roslyn, с которым я, к сожалению, не очень знаком - может ли это быть частью проблемы?
UPDATE # 1 : Похоже, всеошибки компиляции связаны с кодом, который действителен только в C # 7.0.Это может быть ключом.