Configure Visual Studio 2013 to allow ASPNETCOMPILER to precompile using the x64 compiler

How can I use the “Precompile during publishing” flag on a VS2013 x64 project? No matter what I do, it fails to publish because it insists on using the x86 ASPNETCOMPILER.

I think I used to have this working in VS2012, but after upgrading to VS2013 it is no longer working.

I recall the fix involving changing a text file related to MSBuild but I honestly don’t know very much about it so it’s a little hazy.

Any help is greatly appreciated. Thanks!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This seems to be a bug in Visual Studio 2013.

Microsoft Connect – Precompile error when using X64 platform

The workaround listed there works and is to add the following xml in the Project/PropertyGroup xml tag to the publish profile (located in the PropertiesPublishProfiles directory of your project).

<AspnetCompilerPath>C:WindowsMicrosoft.NETFramework64v4.0.30319</AspnetCompilerPath>

I was getting this build error before applying the above workaround:
“Could not load file or assembly ‘****’ or one of its dependencies. An attempt was made to load a program with an incorrect format.” – ASPNETCOMPILER

Method 2

Still an issue in Visual Studio 2015 Update 3…

Fix: Open the csproj file of the project in your favourite text editor.

Locate:

<MvcBuildViews>true</MvcBuildViews>

Add the following below it:

<AspNetToolPath Condition=" '$(Platform)' == 'x64'">$(windir)Microsoft.NETFramework64v4.0.30319</AspNetToolPath>

Locate:

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

Amend the AspNetCompiler line as follows:

<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" ToolPath="$(AspNetToolPath)" />


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x