Настройте Visual Studio 2013, чтобы разрешить предварительную компиляцию ASPNETCOMPILER с использованием компилятора x64

Как я могу использовать флаг «Предварительная компиляция во время публикации» в проекте VS2013 x64? Что бы я ни делал, его не удается опубликовать, потому что он настаивает на использовании x86 ASPNETCOMPILER.

Я думаю, что раньше это работало в VS2012, но после обновления до VS2013 оно больше не работает.

Я помню исправление, связанное с изменением текстового файла, связанного с MSBuild, но, честно говоря, я не очень много знаю об этом, поэтому это немного туманно.

Любая помощь приветствуется. Спасибо!


person tacos_tacos_tacos    schedule 12.04.2014    source источник


Ответы (2)


Кажется, это ошибка в Visual Studio 2013.

Microsoft Connect - ошибка предварительной компиляции при использовании платформы X64

Перечисленный здесь обходной путь работает и заключается в том, чтобы добавить следующий XML-файл в тег XML Project / PropertyGroup в профиль публикации (расположенный в каталоге Properties \ PublishProfiles вашего проекта).

<AspnetCompilerPath>C:\Windows\Microsoft.NET\Framework64\v4.0.30319</AspnetCompilerPath>

Я получал эту ошибку сборки до того, как применил описанный выше обходной путь: «Не удалось загрузить файл или сборку '****' или одну из ее зависимостей. Была сделана попытка загрузить программу с неправильным форматом». - ASPNETCOMPILER

person Nitin Agarwal    schedule 15.04.2014
comment
То же. По состоянию на 1 мая 2014 г. проблема с подключением помечена как "Не исправить". Не знаю, почему нет; поиски проблемы стоило мне кучу времени, и исправление кажется простым изменением для следующей версии ...: - \ - person Alan McBee; 02.05.2014

По-прежнему проблема в Visual Studio 2015 с обновлением 3 ...

Исправление: Откройте файл csproj проекта в вашем любимом текстовом редакторе.

Найдите:

<MvcBuildViews>true</MvcBuildViews>

Добавьте под ним следующее:

<AspNetToolPath Condition=" '$(Platform)' == 'x64'">$(windir)\Microsoft.NET\Framework64\v4.0.30319</AspNetToolPath>

Найдите:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'" >
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>

Измените строку AspNetCompiler следующим образом:

<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" ToolPath="$(AspNetToolPath)" />
person Michael Armitage    schedule 02.03.2017
comment
По-прежнему проблема в VS 2017 - person Jay; 13.03.2017
comment
Как это сделать для файлового проекта, отличного от proj. В центре внимания: проект веб-сайта, который не поддерживает файл proj и не создает ни одной библиотеки DLL. Есть ли способ установить это в web.config? - person T.S.; 26.07.2019
comment
Если нет компиляции, зачем это нужно? - person Michael Armitage; 28.07.2019