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

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

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

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

Любая помощь с благодарностью. Спасибо!

2 ответа

Решение

Это похоже на ошибку в Visual Studio 2013.

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

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

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

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

Все еще проблема в 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)" />
Другие вопросы по тегам