为了使我的CMS正常工作,它需要部署到www根目录下的一个虚拟目录中,以便通过反射访问网站进行管理(注:CMS = N2CMS)。使用Visual Studio的“发布到Web”一切正常。但是,当我通过msbuild命令行生成包并发布该版本时,我的虚拟目录会被转换为虚拟应用程序。
我配置了远程服务器,在IIS Web应用程序“exampleapp”下设置了虚拟目录“/n2”,并在Visual Studio项目中的“Package/Publish Web”设置(用于目标服务器的IIS网站/应用程序名称)中配置了此路径。
要生成部署包:
生成的 SourceManifest.xml 包含以下内容。
我配置了远程服务器,在IIS Web应用程序“exampleapp”下设置了虚拟目录“/n2”,并在Visual Studio项目中的“Package/Publish Web”设置(用于目标服务器的IIS网站/应用程序名称)中配置了此路径。
要生成部署包:
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>
有人知道为什么虚拟目录会被转换为虚拟应用程序吗?