Skip undeploy of BRE policy / vocabulary

Topics: General Questions
Jan 19, 2012 at 11:10 PM


I've been using the BTDF for a while now, it's such a great framework!

I've just started trying to use the framework to include the deployment of a BRE policy / vocabulary. The functionality to deploy / undeploy works just fine, I just have one problem...

In my development environment, after I undeploy the application using the BTDF, I can no longer rebuild the Visual Studio solution, because my orchestrations (which use the Call Rules shape) can no longer find the BRE policy. I've thought of a few work-arounds for this, such as calling the policy from code instead (which doesn't check for its existence), or overriding the UndeployVocabAndRules target, but I just wanted to check if there's a simple fix for this or if I'm missing something? Basically I would like the policy & vocabulary to "live on" in at least a published state after I undeploy (so I can rebuild my solution), and to be overwritten on a subsequent deployment using the BTDF.

I'd greatly appreciate any help you can provide.



Jan 20, 2012 at 5:43 AM

Hi David,

Thanks for the kind words, very glad to hear that you like the Deployment Framework!

Strangely, I can't recall ever running into a build error when the policies aren't deployed, but maybe I have always made the calls through code.  Most recently when I used rule policies, I was calling them indirectly through the ESB Toolkit.  I think it includes some helper components -- haven't looked at it for quite a while now.

One simple solution would be to use the Deploy Rules and Vocabularies menu command to get them back out there quickly without deploying anything else, although it may not work if the app doesn't exist.  You can assign the command to a toolbar button or shortcut key.  You could also create a custom target in your .btdfproj that is similar to but simpler than DeployVocabAndRules, and call it via MSBuild.exe as a custom tool in the Tools menu.  As far as stopping them from being undeployed in the first place, there is really no simple way.

Does that help at all?