【问题标题】:What is the correct way to precompile an ASP.Net MVC 2 application?预编译 ASP.Net MVC 2 应用程序的正确方法是什么?
【发布时间】:2011-01-05 19:55:47
【问题描述】:

从 Visual Studio 2010 预编译 ASP.Net MVC 2 应用程序的正确方法是什么?

我正在使用 asp.net 3.5,并尝试使用构建后事件。

我正在使用这个;

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v / -p "$(ProjectDir)"

但它在 ProjectDir 上给了我一个无效的路径错误。

更新:我将“$(ProjectDir)”更改为 $(ProjectDir)\,现在它给了我这个错误;

“使用注册为 allowDefinition='MachineToApplication' 的部分超出应用程序级别是错误的。此错误可能是由于虚拟目录未在 IIS 中配置为应用程序造成的。”

谢谢

【问题讨论】:

  • 出于好奇,您是否将其作为构建后事件运行?
  • 对,就是我上面说的。

标签: asp.net asp.net-mvc asp.net-mvc-2


【解决方案1】:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MvcBuildViews>true</MvcBuildViews>
  </PropertyGroup>

更多详情请查看this答案。

【讨论】:

  • 是的,我确实看到了,它是关于编译视图,而不是编译整个应用程序。也是从 2008 年开始,当时还没有 MVC 2。
【解决方案2】:

从绝对路径开始,然后从那里开始工作。尽管我使用了 $(SolutionDir) 属性,但您尝试的方法通常可以正常工作,并从那里开始,因为我针对许多不同的项目运行它。

Here 是一个您可能会觉得有用的列表。

另外,我同意 Bugai13。您应该投票/接受答案。

【讨论】:

  • 如果这对我有用,那么我会接受它,但如果 id 没有,那么我不能接受它。
  • 这就是您向用户提供反馈的原因,以便他们可以帮助您找到合适的答案。如果你不这样做,它就不是一个社区。​​span>
  • 你试过SolutionDir?它不应该是相同的错误,因为您没有超出应用程序范围。之后您需要添加您的 Web 应用程序目录。例如:$(SolutionDir)\MyMvcApplication.
【解决方案3】:

我遇到了一些不同的问题并修复了它们。

  1. 我在我的后期构建中使用了这个;

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -p "$(ProjectDir)." -v / D:\Work\VSP\deploy

  2. 然后,当它尝试编译我的 aspx 页面时,我遇到了奇怪的错误。事实证明,我的项目中有一个“保留”文件夹来保存我的一些页面的原始副本。即使我不需要它们,编译器也试图编译它们。删除这些文件后一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    相关资源
    最近更新 更多