Я преобразую существующий веб-сайт ASP.NET из 32-разрядного в 64-разрядный.Я изменил конфигурацию всех проектов, на которые есть ссылки в решении, на 64-битную.Проект компилируется и развертывается без проблем с помощью Visual Studio.
Однако наша система CI использует MSBuild, и именно здесь я сталкиваюсь с проблемами.
Я получаю ряд предупреждений, когда прекомпиляция ASP.NETвыполняется для НЕКОТОРЫХ ссылочных проектов, которые выглядят следующим образом:
предупреждение MSB3270: Произошло несоответствие между архитектурой процессора создаваемого проекта "MSIL" и архитектурой процессора ссылки "C:\ Source \ Proclaim \ branch \ Release \ ProclaimUpgrades \ Web \ PrecompiledWeb \ wwwroot \ WebRefresh \ DDI.Constants.dll "," AMD64 ".Это несоответствие может привести к сбоям во время выполнения.Рекомендуется изменить архитектуру целевого процессора вашего проекта с помощью Configuration Manager, чтобы согласовать архитектуры процессора между вашим проектом и ссылками, или взять зависимость от ссылок с архитектурой процессора, которая соответствует целевой архитектуре процессора вашего проекта.
Я также получаю следующую ошибку, которая приводит к сбою прекомпиляции:
ASPNETCOMPILER: ошибка ASPCONFIG: не удалось загрузить файл или сборку 'FooProcessor' или одну из ее зависимостей.Была предпринята попытка загрузить программу с неверным форматом.
Поскольку DDI.Constants.DLL является зависимостью FooProcessor, похоже, что ОШИБКА связана с ПРЕДУПРЕЖДЕНИЕМ несоответствующей архитектуры,Так почему же некоторые проекты в решении создаются как AMD64, а другие - как MSIL?Ссылки на проекты в файле .vbproj для веб-проекта не определяют архитектуру ссылочного проекта, как это делается для других ссылок, не относящихся к проекту.
Как обойти эту ошибку прекомпиляции?