9

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

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

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

沿着类似的路线还有其他各种问题(例如AspNetCompiler MSBuild Task 中的 VirtualPath - 它是否必须等于最终部署的虚拟路径?)但我发现的唯一答案似乎更具轶事 - 即他们只是说这似乎对他们的经历没有影响。

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

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

4

2 回答 2

2

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

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

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

于 2012-10-01T00:26:23.267 回答
1

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 
于 2016-06-07T15:02:47.403 回答