Jay*_*kul 7 asp.net msbuild msdeploy
我们有一个Asp.Net网络应用程序,我们试图伪部署到一个文件夹,我开始认为微软是疯了 - 为什么让WAP做这么难"本地文件系统"部署为MSBuild的一部分?
我可以用这个构建:
msbuild .\SubSite.csproj "/p:Platform=AnyCPU;Configuration=Release" /t:Package
Run Code Online (Sandbox Code Playgroud)
并获得一个很好的package.zip,我可以部署到一个网站...
但是,我的解决方案中有两个项目,我需要在发布之前将它们合并,所以我想将这两个软件包部署到一个文件夹中,然后重新打包该文件夹.尽管文档 TechNet上,相反,它似乎并不可能做到:
msdeploy -verb:sync -source:package=.\SubSite.zip -dest:contentPath=.\Www\SubSite
Run Code Online (Sandbox Code Playgroud)
因为你得到错误:
源(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"
Run Code Online (Sandbox Code Playgroud)
然后我们可以在单独的步骤中打包整个“AppRoot”。
| 归档时间: |
|
| 查看次数: |
1524 次 |
| 最近记录: |