我有一个MSBuild项目,如下所示:
<Target Name="StopApplications">
<BizTalk.BuildGenerator.Tasks.StopApplication MessageBoxConnection="$(BizTalkManagementDatabaseConnectionString)" ApplicationName="x.Direct.Brackmills"/>
<BizTalk.BuildGenerator.Tasks.StopApplication MessageBoxConnection="$(BizTalkManagementDatabaseConnectionString)" ApplicationName="x.Direct.Manhattan"/>
</Target>
<Target Name="RemoveApplications">
<Exec Command="BTSTask RemoveApp -ApplicationName:x.Direct.Brackmills -Server:$(BizTalkDatabaseServerName) -Database:$(BizTalkManagementDatabaseName)" />
<Exec Command="BTSTask RemoveApp -ApplicationName:x.Direct.Manhattan -Server:$(BizTalkDatabaseServerName) -Database:$(BizTalkManagementDatabaseName)" />
</Target>
我的问题是,当调用"RemoveApplications“目标时,ContinueOnError并不像我期望的那样工作。我有一长串要停止和删除的应用程序。它们不会总是存在,所以当脚本发现它们不存在时,我需要脚本继续执行。这似乎对"StopApplications“目标有效,但当它命中"RemoveApplications”目标中缺少的应用程序时,我会得到这样的消息:
“已在项目"cleardownApplications.proj”中生成目标"RemoveApplications“--失败。生成将继续,因为任务"CallTarget”上的"ContinueOnError“设置为"true”。“
但是后来,它退出了"RemoveApplications“,转而使用"AddApplications”。
任何感激的帮助,
谢谢
罗伯。
发布于 2009-01-20 16:13:32
我以不同的方式解决了这个问题,并使用一个单独的目标在删除应用程序之前检查它是否存在。
<Target Name="ApplicationExists">
<BizTalk2006.Application.Exists Application="$(ApplicationName)">
<Output TaskParameter="DoesExist" PropertyName="ApplicationExists" />
</BizTalk2006.Application.Exists>
</Target>
在其他目标中,我将exists-target用作“条件”。
<Target Name="DeleteApplication" Condition="$(ApplicationExists)=='True'" DependsOnTargets="ApplicationExists">
<BizTalk2006.Application.Stop Application="$(ApplicationName)"/>
<BizTalk2006.Application.Delete Application="$(ApplicationName)"/>
</Target>
https://stackoverflow.com/questions/461091
复制相似问题