我正在尝试为自定义 QBO3 安装实现 MSBuild/部署脚本。我可以使用我当前拥有的脚本构建并发布到远程开发计算机。但是,我的 msbuild 脚本将我的 bin 文件夹复制到
C:/inetpub/wwwroot
,我需要将它们放在不同的目录中 (C:/inetpub/devqcc.quandis.net
)。
在我的脚本中,有没有办法为要复制的文件指定不同的目标文件夹?
qbo3 MSBuild 目标旨在支持文件系统部署和通过 WebDeploy 进行部署。
文件系统部署
要为文件系统部署指定自定义文件夹,请指定 PublishFolder 参数:
& 'C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild' .\qbo3.Sample.proj /p:"PublishFolder=c:\inetpub\devqcc.quandis.net"
Web部署
要使用 WebDeploy 定位自定义文件夹(这听起来像您的用例),请指定 SiteName 参数:
& 'C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild' .\qbo3.Sample.proj /p:"SiteName=devqcc.quandis.net,Server=1.2.3.4,User=myUserName,Pwd=secret"
WebDeploy 不会写入文件路径;相反,它与 IIS 通信,由 IIS 确定文件的放置位置。这意味着您的目标框必须已经配置了网站才能使用您要定位的文件夹。
例如,假设磁盘上有以下文件结构:
与相应的 IIS 网站:
要部署到
c:\inetpub\devqcc.quandis.net
文件夹,请告诉 WebDeploy 使用 devqcc.quandis.net
网站:
& 'C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild' .\qbo3.Sample.proj /p:"SiteName=devqcc.quandis.net,Server=1.2.3.4,User=myUserName,Pwd=secret"
要部署到
c:\inetpub\uatqcc.quandis.net
文件夹,请告诉 WebDeploy 使用 uatqcc
网站(注意此示例中的网站名称!= 文件夹名称):
& 'C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild' .\qbo3.Sample.proj /p:"SiteName=uatqcc,Server=1.2.3.4,User=myUserName,Pwd=secret"
如果您查看
qbo3.Sample.proj
文件,请注意它提供了 PublishFolder
(用于文件系统部署)和 SiteName
(用于通过 WebDeploy 进行远程部署)的默认值:
<PublishFolder Condition=" '$(PublishFolder)'==''">c:\inetpub\wwwroot</PublishFolder>
<SiteName Condition=" '$(SiteName)'==''">Default Web Site</SiteName>