Jon Flanders' Blog

Another BizTalk development tool

Monday, March 27, 2006 6:25:44 AM (GMT Daylight Time, UTC+01:00)

Anyone who develops in BizTalk knows that each of their assemblies will be installed into the GAC as well as deployed to the BizTalk management database.

Of course to get assemblies into the GAC you need to give you assembly a strong name.  BizTalk projects have a project setting for a strong name key file - which allows you to link to a snk file generated with sn.exe.  This means for each BizTalk project you create - you have to go to a command line and generate the key, and then open the project properties and set the key (BTW - I highly recommend always using relative file urls - which means do *not* use the browse button provided in the BizTalk UI - that will hardcoded an absolute path).

I usually add an external tool for sn to my Tools menu - which generates a key in the project directory.  I like having the key file in each and every project seperately - which IMO makes each project more portable and easier to share individually with other developers on your team.  Anyway - I've grown tired of having at least 6 clicks to make this work.  Inherently I am just lazy and want things to be efficient.

Here is my Add-in which automates this process.   Thanks to Shawn - http://blogs.msdn.com/shawnfa/archive/2004/07/09/178902.aspx  for explaining how to use the exports from mscoree.dll.   The Add-in (once you install it - you must put the Add-in in your C:\Documents and Settings\<username>\My Documents\Visual Studio 2005\Addins directory) you can just highlight your biztalk project - and it will generate the key and munge the btproj file.  It will pull up a dialog asking you if you want to reload the project (since the only way I could figure out how to do this was to munge the XML - if anyone figures out how to manipulate the BizTalk project objectmodel to automate this - please let me know :)).

Hopefully this little utility will save you a few keystrokes everytime you create a BizTalk project.

BizTalkGenerateStrongName.zip (57.59 KB)

BizTalk 2006   #    Comments [1]   Tracked by:
"New version of BizTalkGenerateStrongName tool" (Carlos Medina) [Trackback]
"Nueva versión de la herramienta BizTalkGenerateStrongName" (BizTalkLATAM's... [Trackback]
https://blogs.msdn.com:443/biztalklatam/archive/2006/04/21/580757.aspx [Pingback]
"New version of BizTalkGenerateStrongName tool" (Carlos Medina's Blog) [Trackback]
http://blogs.devdeo.com/carlos.medina/PermaLink,guid,08da5d6f-c803-4c90-99de-df5... [Pingback]

Monday, March 27, 2006 6:35:50 PM (GMT Daylight Time, UTC+01:00)
hi jon,

you can use this code instead the XML.

string keyFileName = String.Format("..\\..\\{0}_key.snk", proj.Name);
Property property1 = proj.Properties.Item("CommonProperties");
IDictionary dic = property1.Value as IDictionary;
if (!dic.Contains(DictionaryTags.AssemblyKeyFile))
dic.Add(DictionaryTags.AssemblyKeyFile, keyFileName);
else
dic[DictionaryTags.AssemblyKeyFile] = keyFileName;

Don't forget reference the Microsoft.BizTalk.Studio.Extensibility.dll assembly stored in -biztalk path-\Developer Tools folder. This assembly contains the DictionaryTags enumeration.

ps. I don't know if my first comment was sent you. If you have two comments, please ignore one. Thank you.
All comments require the approval of the site owner before being displayed.
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview