【发布时间】:2011-03-21 00:33:54
【问题描述】:
这是 VS 2008 和 .Net 3.5。
我使用了一个自定义部署项目脚本,它类似于发布右键单击菜单,但我已对其进行自定义以执行文件重命名和其他各种零碎的操作。它工作得非常好,并且大大简化了发布过程。
我得知本周末在我们的一个实时网站上出现了一个问题,如果该网站被预编译(长话短说),该问题本可以避免。
所以我一直在尝试将 AspNetCompiler MSBuild 任务(使用 PhysicalPath 属性指向中间发布文件夹)注入部署脚本,我对“VirtualPath”选项有疑问。
尽管在这个预部署阶段网站不在 IIS 中,您仍然需要为“VirtualPath”属性提供一个值。我已经看到here aspnet_compiler.exe 上的关联 -v 开关使用此值来解析编译期间整个站点使用的“~”根虚拟路径。
因此,我认为这意味着您在此处传递的任何内容必须在部署时是应用程序的虚拟根目录,否则它将无法工作。
但是,我已经尝试过了,在此选项中传递了类似“/fake/fake”的内容,然后将我的一个母版页更改为通过基于应用程序的 url 而不是相对的 url 引用 css,它仍然有效即使部署到“/site”而不是“/fake/fake”的虚拟路径。
那么,这个问题的最终答案是什么?我是否需要担心这个 VirtualPath 值完全等于 IIS 中站点的最终部署位置?我希望不会,因为我真的不希望我的部署项目了解目标 Web 服务器的虚拟层次结构,以防它需要更改。
【问题讨论】:
标签: .net asp.net .net-3.5 web-deployment