【问题标题】:Why do I need VirtualPath property for AspNetCompiler task为什么我需要用于 AspNetCompiler 任务的 VirtualPath 属性
【发布时间】:2012-09-10 09:15:15
【问题描述】:

我正在尝试为网站编写构建系统,以便我可以进行一键式构建。我从源代码存储库中获取了一份干净的代码副本,然后使用 msbuild 运行 AspNetCompiler 任务来完成网站的所有预编译。

让我困惑的是我需要指定一个 VirtualPath 或 MetabasePath。我没有元数据库路径 - 我只想将其编译到本地目录中,然后可以将其部署到选择的任何服务器(即首先是开发服务器,然后是实时服务器)。

VirtualPath 很棘手,因为我希望将相同的代码部署到多个位置 - 该代码使用一些上下文和配置详细信息来计算其 SiteID 以显示不同的信息 - 因此指定单个虚拟路径似乎并不明智。

还有许多其他类似的问题(例如 VirtualPath in AspNetCompiler MSBuild Task - does it have to be equal to the final deployed Virtual Path? ),但我发现的唯一答案似乎更多的是轶事 - 即他们只是说这似乎对他们的体验没有任何影响。

但是,我不敢相信它真的没有任何区别。必须在某些情况下使用它,否则它不会存在并且不需要。

那么有人知道(最好有参考资料)这是做什么的吗?将虚构的路径传递给任务可能会导致什么问题?

【问题讨论】:

    标签: .net msdeploy aspnet-compiler


    【解决方案1】:

    在 Visual Studio 中发布站点时,不需要输入此数据(事实上,我什至从未见过任何选项)。我很惊讶它在 MS-Build 配置中是强制性的。

    您可能想对 Visual Studio 使用的任何东西进行“逆向工程”,但我猜它会是一个单斜杠“/”或类似的东西。

    话虽如此,该要求可能与使用虚拟路径提供程序或资源提供程序的预编译网站周围的issues 有关。

    【讨论】:

    • 是的,我也很惊讶。而且我不知道如何去逆向工程视觉工作室所做的。在不知道该属性的用途的情况下,很难搜索 Visual Studio 正在使用什么。任何关于我如何做到这一点的建议将不胜感激。
    • 在 Visual Studio 中,转到工具 -> 选项 -> 项目和解决方案(如果找不到,请选中“显示所有设置”框)->“构建并运行”。然后将输出详细程度设置为诊断。打开输出窗口 (Ctrl-Alt-O) 并执行构建。我在这台机器上没有网站,否则我会快速浏览一下。
    • 这是一个绝妙的选择,可能有助于调试我遇到的其他一些问题。可悲的是,当涉及到预编译步骤时,它似乎没有任何完整的诊断输出,只是说通常的Building directory '/MSReporting/App_Code/'. 类型的东西,没有任何额外的调试输出(例如正在使用的参数)。 :(
    • 您可以尝试使用Process monitor,设置一个过滤器(例如进程名称包含“devenv.exe”),然后查看它在构建期间调用的内容。 Visual Studio 甚至可能没有使用 MsBuild。它可能会直接调用 c# 编译器(csc.exe),恐怕这会使事情变得复杂。很遗憾我现在没有时间深入研究这个问题,但在为我们的一个旧应用程序设置构建自动化时,我自己迟早会遇到这个问题。
    【解决方案2】:

    Visual Studio 对 VirtualPath 属性使用单个反斜杠。生成的完整命令行字符串如下所示。

    C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v \ -p C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\Source C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\TempBuildDir 
    

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多