为了使我的 CMS 正常工作,它需要部署到 www 根目录下的虚拟目录,以便它可以访问(通过反射)要管理的网站(注意:CMS = N2CMS)。当使用 Visual Studio 'Publish To Web' 时,一切都很好。但是当我通过 msbuild 命令行生成包并发布该版本时,我的虚拟目录将转换为虚拟应用程序。
我将远程服务器配置为在我的 IIS Web 应用程序('exampleapp')下有一个虚拟目录'/n2',并在我的打包/发布 Web 设置(要在目标服务器上使用的 IIS 网站/应用程序名称)中配置此路径Visual Studio 中的项目。
生成部署包:
msbuild.exe myproject.csproj /T:Package
这会生成我的代码的压缩包以及要执行的 MsDeploy 命令行批处理文件(标准 msbuild/msdeploy 目标)。
生成的SetParameters.xml包含以下内容:
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="exampleapp/n2" />
</parameters>
生成的SourceManifest.xml包含以下内容
<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
<IisApp path="C:\...shortened-path...\PackageTmp" managedRuntimeVersion="v4.0" />
<setAcl path="C:\...shortened-path...\PackageTmp" setAclResourceType="Directory" />
<setAcl path="C:\...shortened-path...\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
</sitemanifest>
有人知道为什么虚拟目录会转换为虚拟应用程序吗?