msbuild命令行是否有whatif开关?
我的生成服务器上运行了一个msbuild命令行。它在构建后使用开关部署msbuild命令行是否有whatif开关?,msbuild,Msbuild,我的生成服务器上运行了一个msbuild命令行。它在构建后使用开关部署/p:DeployOnBuild=true 部署时是否有类似whatif的开关用于msbuild?有几种方法可以在连续集成中实现该问题 自定义MSBuild任务 您可以创建自己的任务来实现该接口。您可以从helper类派生任务并重写其Execute()方法。这个解决方案是最灵活的。所以,可以将其他参数从命令行传递到开发进程,或者根据构建配置对其进行硬编码 然后将任务添加到项目中: <Project xmlns="http
/p:DeployOnBuild=true
部署时是否有类似
whatif
的开关用于msbuild?有几种方法可以在连续集成中实现该问题
自定义MSBuild任务
您可以创建自己的任务来实现该接口。您可以从helper类派生任务并重写其Execute()
方法。这个解决方案是最灵活的。所以,可以将其他参数从命令行传递到开发进程,或者根据构建配置对其进行硬编码
然后将任务添加到项目中:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Register the custom task -->
<UsingTask TaskName="TaskNamespace.MyTask" AssemblyFile="path\to\task\assembly.dll"/>
<!-- Define something -->
<!-- Set properties for Debug configuration -->
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<WhatIf>true</WhatIf>
<!-- Set another properties -->
</PropertyGroup>
<!-- Set properties for Release configuration -->
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<WhatIf>false</WhatIf>
<!-- Set another properties -->
</PropertyGroup>
<Target Name="MyTarget">
<MyTask OnlyReport="$(WhatIf)"/>
</Target>
</Project>
第一个命令构建web应用程序项目并创建本地web部署包。注意,它需要解决方案文件中的本地包发布配置文件
第二行使用–whatif
标志调用msdeploy.exe
。也可以直接使用msdeploy.exe
。要获取详细信息,请参阅
自动化Web包部署
前面的方法可以使用MSBuild的任务实现自动化。比如说
msbuild "MySolution.sln" /t:MyProject /p:Configuration="Release" /p:DeployOnBuild=true /p:PublishProfile="Local Package"
"path\to\MyProject.deploy.cmd" /T /M:"http://my-server.loc/MsDeployAgentService" /A:NTLM -allowUntrusted
<PropertyGroup>
<DeployMode>T</DeployMode>
<DeployMode Condition=" '$(Configuration)'=='Release' ">Y</DeployMode>
<DestinationServer>http://my-server.loc</DestinationServer>
</PropertyGroup>
<Target Name="PublishWebPackages">
<PropertyGroup>
<DeployCommand>
"path\to\MyProject.deploy.cmd" /$(DeployMode) /M:$(DestinationServer)/MsDeployAgentService /A:NTLM
</DeployCommand>
</PropertyGroup>
<Exec Command="$(DeployCommand)"/>
</Target>
T
Y
http://my-server.loc
“path\to\MyProject.deploy.cmd”/$(DeployMode)/M:$(DestinationServer)/MsDeployAgentService/A:NTLM
您还可以通过
msbuild
命令/p:
开关传递DeployMode
和DestinationServer
的值。请澄清您的问题。你所说的likewhatif
是什么意思?@Alexander msdeploy.exe-你想得到一份部署包的报告,而不是部署包的报告吗?投票结束“不清楚你在问什么”,请陈述你的期望或描述你正在/想要解决的问题。@Alexander是,我想要包部署的报告。msdeploy具有whatif开关,因此它将在实际部署之前模拟部署。在使用/p:DeployOnBuild=true时,我似乎找不到类似的msbuild功能