Asp.net Can';是否将msdeploy web包保存到临时文件夹?

Asp.net Can';是否将msdeploy web包保存到临时文件夹?,asp.net,msbuild,msdeploy,Asp.net,Msbuild,Msdeploy,我们有一个Asp.Net web应用程序,我们正试图将其伪部署到一个文件夹中,我开始认为Microsoft是疯了——为什么要让WAP作为MSBuild的一部分进行“本地文件系统”部署如此困难 我可以用它来构建: msbuild .\SubSite.csproj "/p:Platform=AnyCPU;Configuration=Release" /t:Package 并获得一个很好的package.zip,我可以将其部署到网站上 但是,我的解决方案中有两个项目,在发布它们之前需要将它们合并,因

我们有一个Asp.Net web应用程序,我们正试图将其伪部署到一个文件夹中,我开始认为Microsoft是疯了——为什么要让WAP作为MSBuild的一部分进行“本地文件系统”部署如此困难

我可以用它来构建:

msbuild .\SubSite.csproj "/p:Platform=AnyCPU;Configuration=Release" /t:Package
并获得一个很好的package.zip,我可以将其部署到网站上

但是,我的解决方案中有两个项目,在发布它们之前需要将它们合并,因此我希望将这两个包部署到一个文件夹中,然后重新打包该文件夹。尽管technet上出现了以下问题,但似乎不可能做到:

msdeploy -verb:sync -source:package=.\SubSite.zip -dest:contentPath=.\Www\SubSite
因为您得到了错误:

源(sitemanifest)和目标(contentPath)与给定操作不兼容。


有没有人建议我如何在一个网站内部部署两个网站,而不用手动将文件从“PackageTmp”文件夹中复制出来?我的意思是,我知道我可以这样做,但我不喜欢创建自定义目标,也没有其他方法可以找到它,只需做一些应该内置的事情。

我们最终找到了如何做到这一点,但我真的不高兴;-)

基本上,(如本文其他部分所述),您可以调用msbuild,并将目标设置为WPPCopyWebApplication。执行此操作时,还可以指定/覆盖WebProjectOutputDir属性。类似这样的情况(其中${name}是我们正在使用的变量)

然后,我们可以将整个“批准”打包在一个单独的步骤中。

事实上,这里的答案(即使是“那不可能”)将非常好。
msbuild ${SourcePath}\Www\UI\UI.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot" "/t:_WPPCopyWebApplication"
msbuild ${SourcePath}\Www\Mobile\Mobile.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\Mobile" "/t:_WPPCopyWebApplication"
msbuild ${SourcePath}\Www\Service\WebService.csproj "/p:Platform=AnyCPU;Configuration=Release;WebProjectOutputDir=${OutputPath}\AppRoot\WebServices" "/t:_WPPCopyWebApplication"