Настройте 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)" />