我认为可以通过修改文件将第三方文件添加到 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*