gpt4 book ai didi

.net - AspNetCompiler MSBuild 任务中的 VirtualPath - 它是否必须等于最终部署的虚拟路径?

转载 作者:行者123 更新时间:2023-12-01 11:59:08 29 4
gpt4 key购买 nike

这是 VS 2008 和 .Net 3.5。

我使用自定义部署项目脚本,它类似于发布右键单击菜单,但我已对其进行自定义以执行文件重命名和各种其他零碎操作。它工作得非常好,并且大大简化了发布过程。

本周末,我了解到我们的一个实时网站上存在一个问题,如果该网站经过预编译(长话短说),这个问题本可以避免。

所以我一直在尝试将 AspNetCompiler MSBuild 任务(使用 PhysicalPath 属性指向中间发布文件夹)注入(inject)部署脚本,我对“VirtualPath”选项有疑问。

尽管该网站在此预部署阶段不在 IIS 中,您仍然需要为“VirtualPath”属性提供一个值。我看过here aspnet_compiler.exe 上关联的 -v 开关使用此值来解析编译期间整个站点使用的“~”根虚拟路径。

因此,我认为这意味着无论您在此处传递什么,都必须是部署时应用程序的虚拟根目录,否则它将无法运行。

不过,我已经试过了,在此选项中传递类似“/fake/fake”的内容,然后更改我的一个母版页以通过应用程序根目录而不是相对链接来引用 css,它仍然有效即使部署到“/site”而不是“/fake/fake”的虚拟路径。

那么关于这个问题的最终答案是什么?我是否需要担心此 VirtualPath 值与 IIS 中站点的最终部署位置完全相同?我希望不会,因为我真的不希望我的部署项目对目标 Web 服务器的虚拟层次结构有任何了解,以防它需要更改。

最佳答案

我已经分析了预编译的代码,预编译器似乎无论如何都会自动将应用程序根路径解析为相对路径,无论您对 VirtualPath 的设置如何。我还尝试将相同的预编译站点部署到目标服务器上的不同虚拟路径,但没有任何中断。

因此我有足够的信心可以说:不,这个值是多少并不重要。

毫无疑问,我肯定会错过一些东西 - 但在我被证明是错误的之前,我会假设我是对的!

关于.net - AspNetCompiler MSBuild 任务中的 VirtualPath - 它是否必须等于最终部署的虚拟路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3333966/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com