【问题标题】:Configure Visual Studio 2013 to allow ASPNETCOMPILER to precompile using the x64 compiler配置 Visual Studio 2013 以允许 ASPNETCOMPILER 使用 x64 编译器进行预编译
【发布时间】:2014-05-26 19:02:18
【问题描述】:

如何在 VS2013 x64 项目上使用“发布期间预编译”标志?无论我做什么,它都无法发布,因为它坚持使用x86 ASPNETCOMPILER。

我想我以前在 VS2012 中可以使用此功能,但升级到 VS2013 后就无法使用了。

我记得涉及更改与 MSBuild 相关的文本文件的修复,但老实说,我对此不太了解,所以有点模糊。

非常感谢任何帮助。谢谢!

【问题讨论】:

    标签: asp.net msbuild visual-studio-2013 aspnet-compiler


    【解决方案1】:

    这似乎是 Visual Studio 2013 中的一个错误。

    Microsoft Connect - Precompile error when using X64 platform

    此处列出的解决方法有效,并且是将 Project/PropertyGroup xml 标记中的以下 xml 添加到发布配置文件(位于项目的 Properties\PublishProfiles 目录中)。

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

    在应用上述解决方法之前,我遇到了这个构建错误: “无法加载文件或程序集 '****' 或其依赖项之一。试图加载格式不正确的程序。” - ASPNET编译器

    【讨论】:

    • 同上。截至 2014 年 5 月 1 日,Connect 问题被列为“无法修复”。我不知道为什么不;我花了很多时间来解决问题,修复似乎是下一个版本的简单更改......:-\
    【解决方案2】:

    在 Visual Studio 2015 Update 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)" />
    

    【讨论】:

    • 在 VS 2017 中仍然是一个问题
    • 如何为非 proj 文件项目执行此操作。重点案例:不包含 proj 文件且不生成单个 dll 的网站项目。有没有办法在 web.config 中设置它?
    • 如果没有编译为什么需要这个?
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    相关资源
    最近更新 更多