我认为可以通过修改文件将第三方文件添加到 webdeploy 包中.csproj,但是,我从来没有使用过它。
或者,您可以通过使用 MSDeploy 的命令行客户端及其sync动词,通过将您的/Deployable文件夹指定为-source参数并将目标服务器的 msdeploy 服务指定为,轻松实现相同的结果-dest,例如:
$(WebDeployToolPath)\msdeploy -verb:sync -source:dirPath='Deployable\' -dest:dirPath='$(DeployDirectoryLocalPath)',computerName=$(DeployTargetURL),userName='$(DeployUserName)',password='$(Password)',authType='Basic' -verbose -allowUntrusted
替补:
$(WebDeployToolPath)- 带有 msdeploy 可执行文件的文件夹的完整路径(例如c:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe)
Deployable\- 您要复制到目标服务器的文件夹的完整路径。
$(DeployDirectoryLocalPath)-目标服务器上目标文件夹的完整本地路径。
$(DeployTargetURL)- 网络部署服务 URL(例如https://192.168.142.55:8172/MsDeploy.axd或http://myserver/msdeployagentservice)
$(DeployUserName)- 用于部署的用户名(应该是 Win 2003 的管理员)
$(Password)- 用户的密码。
就是这样 - 此命令将Deployable\文件夹与$(DeployDirectoryLocalPath)文件夹同步(即使内容完全匹配)。
您可以将其包装到.csproj文件中的 msbuild 目标中:
<PropertyGroup>
<DeployTargetURL Condition="'$(DeployTargetURL)'==''">https://192.168.142.55:8172/MsDeploy.axd</DeployTargetURL>
<DeployUserName Condition="'$(DeployUserName)'==''">tergetServer\Administrator</DeployUserName>
<Password Condition="'$(Password)'==''">AdminPassword</Password>
<WebDeployToolPath Condition="'$(WebDeployToolPath)'==''">c:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe</WebDeployToolPath>
<Target Name="Deploy">
<Exec Command=""$(WebDeployToolPath)"\msdeploy -verb:sync -source:dirPath='Deployable\' -dest:dirPath='$(DeployDirectoryLocalPath)',computerName=$(DeployTargetURL),userName='$(DeployUserName)',password='$(Password)',authType='Basic' -verbose -allowUntrusted " />
</Target>
然后通过以下方式从命令行运行它:
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.proj /t:Deploy*