<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>trace of thought (Scott Colestock) - Deployment Framework</title>
    <link>http://www.traceofthought.net/</link>
    <description>a trace of thought on...BizTalk Server, Team Foundation Server, AppFabric, etc.</description>
    <language>en-us</language>
    <copyright>Scott Colestock</copyright>
    <lastBuildDate>Thu, 06 Nov 2008 15:29:05 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>scolestock@marcatopartners.net</managingEditor>
    <webMaster>scolestock@marcatopartners.net</webMaster>
    <item>
      <trackback:ping>http://www.traceofthought.net/Trackback.aspx?guid=2d5a8755-91ab-4d10-8fc7-463ab654ac69</trackback:ping>
      <pingback:server>http://www.traceofthought.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.traceofthought.net/PermaLink,guid,2d5a8755-91ab-4d10-8fc7-463ab654ac69.aspx</pingback:target>
      <dc:creator>Scott Colestock</dc:creator>
      <wfw:comment>http://www.traceofthought.net/CommentView,guid,2d5a8755-91ab-4d10-8fc7-463ab654ac69.aspx</wfw:comment>
      <wfw:commentRss>http://www.traceofthought.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2d5a8755-91ab-4d10-8fc7-463ab654ac69</wfw:commentRss>
      <title>New version of XmlPreprocess...</title>
      <guid isPermaLink="false">http://www.traceofthought.net/PermaLink,guid,2d5a8755-91ab-4d10-8fc7-463ab654ac69.aspx</guid>
      <link>http://www.traceofthought.net/2008/11/06/NewVersionOfXmlPreprocess.aspx</link>
      <pubDate>Thu, 06 Nov 2008 15:29:05 GMT</pubDate>
      <description>&lt;p&gt;
A tool that has been an important part of the &lt;a href="http://www.codeplex.com/biztalkdeployment"&gt;BizTalk
Deployment Framework&lt;/a&gt; has been updated by &lt;a href="http://weblogs.asp.net/lorenh/"&gt;Loren&lt;/a&gt;&amp;nbsp;&amp;ndash;
see the codeplex project &lt;a href="http://www.codeplex.com/xmlpreprocess"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
XmlPreProcess is a general purpose tool in its own right for managing configuration
files across multiple environments.&amp;nbsp; The tool has pulled in &lt;a href="http://www.codeplex.com/EnvSettingsManager"&gt;previously
separated functionality&lt;/a&gt; (the excellent stuff done by &lt;a href="http://blogs.digineer.com/blogs/tabraham/"&gt;Tom&lt;/a&gt;)
so that it can consume spreadsheets (that describe environment variations) directly,
rather than needing a separate process for that.&amp;nbsp; Very slick stuff !
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=2d5a8755-91ab-4d10-8fc7-463ab654ac69" /&gt;</description>
      <comments>http://www.traceofthought.net/CommentView,guid,2d5a8755-91ab-4d10-8fc7-463ab654ac69.aspx</comments>
      <category>Deployment Framework</category>
      <category>General</category>
    </item>
    <item>
      <trackback:ping>http://www.traceofthought.net/Trackback.aspx?guid=45b35592-f488-4949-88e8-7ecf8531ad56</trackback:ping>
      <pingback:server>http://www.traceofthought.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.traceofthought.net/PermaLink,guid,45b35592-f488-4949-88e8-7ecf8531ad56.aspx</pingback:target>
      <dc:creator>Scott Colestock</dc:creator>
      <wfw:comment>http://www.traceofthought.net/CommentView,guid,45b35592-f488-4949-88e8-7ecf8531ad56.aspx</wfw:comment>
      <wfw:commentRss>http://www.traceofthought.net/SyndicationService.asmx/GetEntryCommentsRss?guid=45b35592-f488-4949-88e8-7ecf8531ad56</wfw:commentRss>
      <title>Slides on Unattended Deployments...</title>
      <guid isPermaLink="false">http://www.traceofthought.net/PermaLink,guid,45b35592-f488-4949-88e8-7ecf8531ad56.aspx</guid>
      <link>http://www.traceofthought.net/2008/06/19/SlidesOnUnattendedDeployments.aspx</link>
      <pubDate>Thu, 19 Jun 2008 19:03:48 GMT</pubDate>
      <description>&lt;p&gt;
As I mentioned &lt;a href="http://www.traceofthought.net/2008/06/02/TechEd2008TalkOnUnattendedDeployments.aspx"&gt;previously&lt;/a&gt;,
I did some talks recently (user group, Teched 2008) on &amp;ldquo;unattended&amp;rdquo; deployments
for BizTalk.&amp;nbsp; You can download the slides &lt;a href="http://www.traceofthought.net/misc/ScottColestockUnattendedBizTalkDeployments.ppt"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Soon, I&amp;rsquo;ll be posting a generic Team Build script for BizTalk projects as well
as a MSBuild script that can be used with TFS Deployer (for unattended deployments.)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=45b35592-f488-4949-88e8-7ecf8531ad56" /&gt;</description>
      <comments>http://www.traceofthought.net/CommentView,guid,45b35592-f488-4949-88e8-7ecf8531ad56.aspx</comments>
      <category>BizTalk Insights</category>
      <category>Deployment Framework</category>
    </item>
    <item>
      <trackback:ping>http://www.traceofthought.net/Trackback.aspx?guid=c55de970-17ad-4ead-939e-b2aab8a197f3</trackback:ping>
      <pingback:server>http://www.traceofthought.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.traceofthought.net/PermaLink,guid,c55de970-17ad-4ead-939e-b2aab8a197f3.aspx</pingback:target>
      <dc:creator>Scott Colestock</dc:creator>
      <wfw:comment>http://www.traceofthought.net/CommentView,guid,c55de970-17ad-4ead-939e-b2aab8a197f3.aspx</wfw:comment>
      <wfw:commentRss>http://www.traceofthought.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c55de970-17ad-4ead-939e-b2aab8a197f3</wfw:commentRss>
      <title>Deployment Framework Release on CodePlex...</title>
      <guid isPermaLink="false">http://www.traceofthought.net/PermaLink,guid,c55de970-17ad-4ead-939e-b2aab8a197f3.aspx</guid>
      <link>http://www.traceofthought.net/2008/02/15/DeploymentFrameworkReleaseOnCodePlex.aspx</link>
      <pubDate>Fri, 15 Feb 2008 22:40:24 GMT</pubDate>
      <description>&lt;p&gt;
So, I should have moved the BizTalk &lt;a href="http://www.traceofthought.net/CategoryView,category,Deployment%2BFramework.aspx"&gt;Deployment
Framework&lt;/a&gt; to &lt;a href="http://codeplex.com/"&gt;CodePlex &lt;/a&gt;long ago, but better
late than never.&amp;nbsp; Find it &lt;a href="http://www.codeplex.com/biztalkdeployment"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
A few small items:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Better support for 64 bit platforms in scripting operations&lt;/li&gt;
&lt;li&gt;
Support for using the 64 bit isapi extension for http adapter&lt;/li&gt;
&lt;li&gt;
A "startApplicationOnDeploy" property you can use to control whether your application
immediately starts after deploying&lt;/li&gt;
&lt;li&gt;
Bug fixes for the lightweight "Update Orchs/Comps" tool menu item&lt;/li&gt;
&lt;li&gt;
Automatic creation of "ProjectPath" sso config item &amp;ndash; that lets you know where
your developer workspace or server installation directory resides.&lt;/li&gt;
&lt;li&gt;
Better support for pre-processing bindings on developer workstations 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
But the cool item is integration of &lt;a href="http://blogs.digineer.com/blogs/tabraham"&gt;Tom
Abraham&amp;rsquo;s&lt;/a&gt; improved &amp;ldquo;SettingsFileGenerator&amp;rdquo; &amp;ndash; see&amp;nbsp;&lt;a href="http://www.codeplex.com/EnvSettingsManager"&gt;here&lt;/a&gt;.&amp;nbsp;
It moves the process of generating individual environment setting files from a VB
macro inside of the SettingsFileGenerator.xls spreadsheet to an external command-line&amp;nbsp;tool.
&lt;/p&gt;
&lt;p&gt;
It also&amp;nbsp;allows&amp;nbsp;you to use the Excel XML format for the SettingsFileGenerator
spreadsheet.&amp;nbsp; The Excel XML format allows for the ability to do standard diff/merge
activities, a big improvement&amp;hellip;
&lt;/p&gt;
&lt;p&gt;
The way we&amp;rsquo;ve intergated this tool into the deployment framework allows you
to treat the individual settings files as "transient" - they will get auto-generated
by the deployment process now&amp;nbsp;on the fly, and do not need to be version controlled
or manually generated after spreadsheet edits.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Enjoy!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=c55de970-17ad-4ead-939e-b2aab8a197f3" /&gt;</description>
      <comments>http://www.traceofthought.net/CommentView,guid,c55de970-17ad-4ead-939e-b2aab8a197f3.aspx</comments>
      <category>Deployment Framework</category>
    </item>
    <item>
      <trackback:ping>http://www.traceofthought.net/Trackback.aspx?guid=687edf39-57aa-4776-9aea-8c0f769320c1</trackback:ping>
      <pingback:server>http://www.traceofthought.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.traceofthought.net/PermaLink,guid,687edf39-57aa-4776-9aea-8c0f769320c1.aspx</pingback:target>
      <dc:creator>Scott Colestock</dc:creator>
      <wfw:comment>http://www.traceofthought.net/CommentView,guid,687edf39-57aa-4776-9aea-8c0f769320c1.aspx</wfw:comment>
      <wfw:commentRss>http://www.traceofthought.net/SyndicationService.asmx/GetEntryCommentsRss?guid=687edf39-57aa-4776-9aea-8c0f769320c1</wfw:commentRss>
      <slash:comments>23</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
(Update: The original download files were missing the <a href="http://www.traceofthought.net/PermaLink,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx"> PDB-to-GAC</a> functionality
I've discussed before.  Please download again if you have already...)
</p>
        <p>
The <a href="http://www.traceofthought.net/CategoryView,category,Deployment%20Framework.aspx"> BizTalk
Deployment Framework</a> has been updated to work with BizTalk 2006...It is hard to
believe that this project has been going on since May of 2004!
</p>
        <p>
The Deployment Framework for BizTalk 2006 still has the same goals as the
2004 version:
</p>
        <ul>
          <li>
Streamline the deployment process for developers, ensuring repeatability
</li>
          <li>
Make it easier for a team of BizTalk developers to stay in sync - not just with BizTalk
artifacts, but with all the other infrastructure that surrounds the solution (virtual
directories, queues, file folders, etc.)
</li>
          <li>
Extremely close parity between server-side deployments and developer deployments -
so you are always testing your server deployments as you go through a typical developer
work day.</li>
        </ul>
        <p>
BizTalk 2006 itself introduced quite a few features to make deployment easier, and
can work fine for small (or solo) projects.  Here are a few limitations I've
encountered: 
</p>
        <ul>
          <li>
Though much improved, it is still possible to get into "dependency chaos" - where
you spend time manually undeploying/deploying individual artifacts. 
</li>
          <li>
Binding changes have to be communicated "manually" between developers on a team, since
the import process is done through the Admin MMC or command-line.  Just "getting
latest" from version control isn't sufficient. 
</li>
          <li>
Binding files for your various environments have to be maintained as separate files
(manually), rather than "merging in" environment-specific settings 
</li>
          <li>
Artifacts such as rules, virtual directories, queues, folders, additional dependent
assemblies, etc. can be represented as "Resources" within the Admin MMC (and in exported
MSIs), but not in a fashion that easily moves between <em>developers</em> on a team.</li>
        </ul>
        <p>
So!  To get started with this version, download the <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"> Deployment
Framework (Tools) zip</a> and run the MakeBizTalkExternalTools_VS2005.vbs script. 
This will add entries to the Visual Studio tools menu for deploying and undeploying
using the framework.  You can download the <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntSample_3.0.zip"> full
sample</a> to see the framework in action (first build it, then do Tools-BizTalk
Deploy.  You'll see something like <a href="http://www.traceofthought.net/misc/DeploymentFramework2006Output.txt"> this</a>.)
</p>
        <p>
The high-level approach is the same as the 2004 framework - you supply a small project-specific
NAnt script that indicates via properties what elements of a deployment your solution
requires.  You include BizTalkDeploymentInclude.nant to get all the core deployment functionality,
and make sure the DeployTools directory is copied to your project.  (Unzipping
the <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntCore_3.0.zip"> Deployment
Framework Core</a> into your project is a good way to do this.)  See the <a href="http://www.traceofthought.net/misc/BT2006DeployWithNantDocs.htm"> documentation</a> for
a more complete discussion.
</p>
        <p>
The primary difference in the upgraded framework for BizTalk 2006 is that
we now create a BizTalk Application definition, and use <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bts06technicalref/html/3c350695-13e9-441a-9f1e-03cdc3e41328.asp"> BTSTask</a> to
add all BizTalk artifacts as resources within that application.  Starting and
stopping the application is done at an application level rather than per port/per
orchestration.
</p>
        <p>
Packaging up your solution as an MSI can be done with the WiX-based scripts that have
been in the framework for awhile, or by using the MSI export mechanism in
BizTalk 2006, if you prefer.  (The latter solution will require a few additional
steps, and doesn't give you the parity described earlier.  But it works if you
need to go that route.)
</p>
        <p>
Other Notes:
</p>
        <ul>
          <li>
            <a href="http://prdownloads.sourceforge.net/nant/nant-0.85-rc4-bin.zip?download">NAnt
.85 RC4</a> (and <a href="http://sourceforge.net/project/showfiles.php?group_id=54790"> NAntContrib</a> )
is required.  Be sure to copy the new BizTalk.NAnt.Tasks.dll to NAnt's bin directory. 
We need to call BizTalk's .net 2.0 assemblies, and NAnt wasn't built against 2.0 --
so change nant.exe.config to have <strong>only</strong>&lt;supportedRuntime version="v2.0.50727"
/&gt; in the&lt;startup&gt; element. 
</li>
          <li>
Log4net usage in the sample (which isn't required of course for the framework)
has been updated to <a href="http://logging.apache.org/log4net/downloads.html"> log4net
1.2.10</a> , as has my <a href="http://www.traceofthought.net/PermaLink,guid,62b858b4-d8ba-4fc4-92aa-35a4ff1ba00a.aspx"> serializable
wrapper</a>.  You can find the new log4net.Ext.Serializable in the <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"> Tools</a> download
(which is useful all by itself, apart from the framework.) 
</li>
          <li>
You can actually use the BizTalkDeploymentInclude.nant file in this release with BizTalk
2004, if you like, to aid in your migration.  There is NAnt property to indicate
2004 vs. 2006. 
</li>
          <li>
Scan all the <a href="http://www.traceofthought.net/CategoryView,category,Deployment Framework.aspx"> previous
release notes...</a></li>
        </ul>
        <p>
Leave comments with any questions/issues/etc.  Enjoy!
</p>
        <p>
Download: <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntSample_3.0.zip"> Full
Sample</a>, <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntCore_3.0.zip"> Framework
Core</a>, <a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"> Tools
Source</a> , <a href="http://www.traceofthought.net/misc/BT2006DeployWithNantDocs.htm"> Docs</a></p>
        <img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=687edf39-57aa-4776-9aea-8c0f769320c1" />
      </body>
      <title>Deployment Framework for BizTalk 2006...</title>
      <guid isPermaLink="false">http://www.traceofthought.net/PermaLink,guid,687edf39-57aa-4776-9aea-8c0f769320c1.aspx</guid>
      <link>http://www.traceofthought.net/2006/06/30/DeploymentFrameworkForBizTalk2006.aspx</link>
      <pubDate>Fri, 30 Jun 2006 20:46:41 GMT</pubDate>
      <description>       &lt;p&gt;
(Update: The original download files were missing the &lt;a href="http://www.traceofthought.net/PermaLink,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx"&gt; PDB-to-GAC&lt;/a&gt; functionality
I've discussed before.&amp;nbsp; Please download again if you have already...)
&lt;/p&gt;
&lt;p&gt;
The &lt;a href="http://www.traceofthought.net/CategoryView,category,Deployment%20Framework.aspx"&gt; BizTalk
Deployment Framework&lt;/a&gt; has been updated to work with BizTalk 2006...It is hard to
believe that this project has been going on since May of 2004!
&lt;/p&gt;
&lt;p&gt;
The Deployment Framework for BizTalk 2006 still has the same&amp;nbsp;goals&amp;nbsp;as the
2004 version:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Streamline the deployment process for developers, ensuring repeatability&lt;li&gt;
Make it easier for a team of BizTalk developers to stay in sync - not just with BizTalk
artifacts, but with all the other infrastructure that surrounds the solution (virtual
directories, queues, file folders, etc.)&lt;li&gt;
Extremely close parity between server-side deployments and developer deployments -
so you are always testing your server deployments as you go through a typical developer
work day.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
BizTalk 2006 itself introduced quite a few features to make deployment easier, and
can work fine for small (or solo) projects.&amp;nbsp; Here are a few limitations I've
encountered: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Though much improved, it is still possible to get into "dependency chaos" - where
you spend time manually undeploying/deploying individual artifacts. 
&lt;li&gt;
Binding changes have to be communicated "manually" between developers on a team, since
the import process is done through the Admin MMC or command-line.&amp;nbsp; Just "getting
latest" from version control isn't sufficient. 
&lt;li&gt;
Binding files for your various environments have to be maintained as separate files
(manually), rather than "merging in" environment-specific settings 
&lt;li&gt;
Artifacts such as rules, virtual directories, queues, folders, additional dependent
assemblies, etc. can be represented as "Resources" within the Admin MMC (and in exported
MSIs), but not in a fashion that easily moves between &lt;em&gt;developers&lt;/em&gt; on a team.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
So!&amp;nbsp; To get started with this version, download the &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"&gt; Deployment
Framework (Tools) zip&lt;/a&gt; and run the MakeBizTalkExternalTools_VS2005.vbs script.&amp;nbsp;
This will add entries to the Visual Studio tools menu for deploying and undeploying
using the framework.&amp;nbsp; You can download the &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntSample_3.0.zip"&gt; full
sample&lt;/a&gt; to see the framework in action (first build it, then do&amp;nbsp;Tools-BizTalk
Deploy.&amp;nbsp; You'll see something like &lt;a href="http://www.traceofthought.net/misc/DeploymentFramework2006Output.txt"&gt; this&lt;/a&gt;.)
&lt;/p&gt;
&lt;p&gt;
The high-level approach is the same as the 2004 framework - you supply a small project-specific
NAnt script that indicates via properties what elements of a deployment your solution
requires.&amp;nbsp; You include BizTalkDeploymentInclude.nant to get all the core deployment&amp;nbsp;functionality,
and make sure the DeployTools directory is copied to your project.&amp;nbsp; (Unzipping
the &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntCore_3.0.zip"&gt; Deployment
Framework Core&lt;/a&gt; into your project is a good way to do this.)&amp;nbsp; See the &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNantDocs.htm"&gt; documentation&lt;/a&gt; for
a more complete discussion.
&lt;/p&gt;
&lt;p&gt;
The primary difference&amp;nbsp;in the upgraded framework for&amp;nbsp;BizTalk 2006 is that
we now create a BizTalk&amp;nbsp;Application definition, and use &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bts06technicalref/html/3c350695-13e9-441a-9f1e-03cdc3e41328.asp"&gt; BTSTask&lt;/a&gt; to
add all BizTalk artifacts as resources within that application.&amp;nbsp; Starting and
stopping the application is done at an application level rather than per port/per
orchestration.
&lt;/p&gt;
&lt;p&gt;
Packaging up your solution as an MSI can be done with the WiX-based scripts that have
been in the framework for awhile, or&amp;nbsp;by&amp;nbsp;using the MSI export mechanism in
BizTalk 2006, if you prefer.&amp;nbsp; (The latter solution will require a few additional
steps, and doesn't give you the parity described earlier.&amp;nbsp; But it works if you
need to go that route.)
&lt;/p&gt;
&lt;p&gt;
Other Notes:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://prdownloads.sourceforge.net/nant/nant-0.85-rc4-bin.zip?download"&gt;NAnt
.85&amp;nbsp;RC4&lt;/a&gt; (and &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=54790"&gt; NAntContrib&lt;/a&gt; )
is required.&amp;nbsp; Be sure to copy the new BizTalk.NAnt.Tasks.dll to NAnt's bin directory.&amp;nbsp;
We need to call BizTalk's .net 2.0 assemblies, and NAnt wasn't built against 2.0 --
so change nant.exe.config to have &lt;strong&gt;only&lt;/strong&gt;&amp;lt;supportedRuntime version="v2.0.50727"
/&amp;gt; in the&amp;lt;startup&amp;gt; element. 
&lt;li&gt;
Log4net usage in the sample&amp;nbsp;(which isn't required of course for the framework)
has been updated to &lt;a href="http://logging.apache.org/log4net/downloads.html"&gt; log4net
1.2.10&lt;/a&gt; , as has my &lt;a href="http://www.traceofthought.net/PermaLink,guid,62b858b4-d8ba-4fc4-92aa-35a4ff1ba00a.aspx"&gt; serializable
wrapper&lt;/a&gt;.&amp;nbsp; You can find the new log4net.Ext.Serializable in the &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"&gt; Tools&lt;/a&gt; download
(which is useful all by itself, apart from the framework.) 
&lt;li&gt;
You can actually use the BizTalkDeploymentInclude.nant file in this release with BizTalk
2004, if you like, to aid in your migration.&amp;nbsp; There is NAnt property to indicate
2004 vs. 2006. 
&lt;li&gt;
Scan all the &lt;a href="http://www.traceofthought.net/CategoryView,category,Deployment Framework.aspx"&gt; previous
release notes...&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Leave comments with any questions/issues/etc.&amp;nbsp; Enjoy!
&lt;/p&gt;
&lt;p&gt;
Download: &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntSample_3.0.zip"&gt; Full
Sample&lt;/a&gt;, &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntCore_3.0.zip"&gt; Framework
Core&lt;/a&gt;, &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNAntExtraTools_3.0.zip"&gt; Tools
Source&lt;/a&gt; , &lt;a href="http://www.traceofthought.net/misc/BT2006DeployWithNantDocs.htm"&gt; Docs&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=687edf39-57aa-4776-9aea-8c0f769320c1" /&gt;</description>
      <comments>http://www.traceofthought.net/CommentView,guid,687edf39-57aa-4776-9aea-8c0f769320c1.aspx</comments>
      <category>Deployment Framework</category>
    </item>
    <item>
      <trackback:ping>http://www.traceofthought.net/Trackback.aspx?guid=f4d20493-70a2-46de-9642-a738dea1ccc0</trackback:ping>
      <pingback:server>http://www.traceofthought.net/pingback.aspx</pingback:server>
      <pingback:target>http://www.traceofthought.net/PermaLink,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx</pingback:target>
      <dc:creator>Scott Colestock</dc:creator>
      <wfw:comment>http://www.traceofthought.net/CommentView,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx</wfw:comment>
      <wfw:commentRss>http://www.traceofthought.net/SyndicationService.asmx/GetEntryCommentsRss?guid=f4d20493-70a2-46de-9642-a738dea1ccc0</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>PDBs in the GAC...</title>
      <guid isPermaLink="false">http://www.traceofthought.net/PermaLink,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx</guid>
      <link>http://www.traceofthought.net/2006/03/01/PDBsInTheGAC.aspx</link>
      <pubDate>Wed, 01 Mar 2006 18:43:19 GMT</pubDate>
      <description>      &lt;p&gt;
In the last release of the BizTalk Deployment Framework, an additional feature was
added that I thought deserved its own post for explanation...
&lt;/p&gt;
&lt;p&gt;
If you are responsible for troubleshooting BizTalk applications in production, you
are likely hungry for all the information you can get about why something is failing.&amp;nbsp;
Since all&amp;nbsp;BizTalk project assemblies are&amp;nbsp;in the GAC, the stack traces you
get (either from your own logging, or the event logs BizTalk generates for unhandled
exceptions) do not contain file and line number information.&amp;nbsp; This makes post-mortem
analysis a lot harder...
&lt;/p&gt;
&lt;p&gt;
A new custom NAnt task (getgacpath)&amp;nbsp;and corresponding support within BizTalkDeploymentInclude.nant
was added for placing PDB (program database) files for all BizTalk and component assemblies
into the GAC.&amp;nbsp; (You can use just this NAnt task without the rest of the Deployment
Framework, of course.&amp;nbsp; In addition, a standalone command line utility called
GetGacPath&amp;nbsp;has been included&amp;nbsp;in the "Tools" download.) 
&lt;/p&gt;
&lt;p&gt;
Why is this interesting?&amp;nbsp; Well, because it allows you to get stack traces that
include file and line&amp;nbsp;number information even when assemblies reside in the GAC.&amp;nbsp;
(This is obviously useful and useable outside the domain of BizTalk...)&amp;nbsp; Without
extra work, file and line&amp;nbsp;number information is generally missing from a stack
trace if a PDB file is not co-located physically with the corresponding assembly.&amp;nbsp;
Putting the PDB file directly into the GAC is an easy way of solving this problem.
&lt;/p&gt;
&lt;p&gt;
Set the "deployPDBsToGac" NAnt property to "true" in your project-specific NAnt file
to get this functionality.
&lt;/p&gt;
&lt;p&gt;
A couple of points are worth mentioning:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
If the directory structure of the GAC were to ever change, this would need to be updated.&amp;nbsp;
(See my upcoming post on using this technique with .NET 2.0.) 
&lt;li&gt;
It would be great if Gacutil.exe provided this functionaity, but it doesn't.&amp;nbsp; 
&lt;li&gt;
You should strongly consider having your release-mode binaries (aka 'deployment' configuration
in BizTalk) build PDB files - there is no reason not to.&amp;nbsp; Look under Project
properties/Configuration properties/Build/Generate Debugging Information. 
&lt;li&gt;
Stack traces that show up in the event log either through your own logging, or via
BizTalk (because the exception was unhandled) will now have file and line number info.&amp;nbsp;
For orchestrations, the file name&amp;nbsp;will correspond to the temporary C# file generated
at compile time.&amp;nbsp; If you use the techniques described in &lt;a href="http://www.traceofthought.net/PermaLink,guid,75e22eec-348d-4880-bea4-6c7a5316e2dd.aspx"&gt; this
post&lt;/a&gt; , you can correlate back to the actual statement that failed.&amp;nbsp; For instance,
the event log might say: &lt;pre&gt;[4740] ERROR BizTalkSample.Orchestrations.TopLevelOrch - An exception was caught. 
[a08701ff-bf80-4940-9f9f-c2bb8597684b]
System.Exception: Something exceptional happened.
   at BizTalkSample.Orchestrations.TopLevelOrch.segment2(StopConditions stopOn) in 
   c:\Documents and Settings\Scott\Local Settings\Temp\h0li3wbi.0.cs:line 2538
&lt;/pre&gt;
&lt;li&gt;
If you grab the file mentioned&amp;nbsp;(h0li3wbi.0.cs)&amp;nbsp;using BTSFileDump (again,see &lt;a href="http://www.traceofthought.net/PermaLink,guid,75e22eec-348d-4880-bea4-6c7a5316e2dd.aspx"&gt; here&lt;/a&gt;)
you can cross-reference this message to a location in the generated C# code for TopLevelOrch: 
&lt;p&gt;
&lt;img src="http://www.traceofthought.net/content/binary/BackToSource.jpg" / / /&gt;
&lt;/p&gt;
You might save off "h0li3wbi.0.cs" (the temp file name chosen when TopLevelOrch&amp;nbsp;compiled)&amp;nbsp;and
the other generated files when you do your build, using BTSFileDump. (That would be
tough to do if you build with CruiseControl, etc.) But you wouldn't &lt;em&gt;have&lt;/em&gt; to
do that - if you can retrieve the source code&amp;nbsp;used for a particular deployment,
then the&amp;nbsp;line number alone&amp;nbsp;should be sufficient to get you to the exception
site (since you can find the correct temp file by looking for comments, etc. that
are in the orchestration - just like if you were using &lt;a href="http://www.traceofthought.net/PermaLink,guid,75e22eec-348d-4880-bea4-6c7a5316e2dd.aspx"&gt; this
technique&lt;/a&gt; to do live debugging.)&amp;nbsp; This all gets better with BizTalk 2006
- see&amp;nbsp;a future post on this topic.&amp;nbsp; 
&lt;li&gt;
Final point: If you set deployPDBsToGac to "true", deployments will begin by stopping
the BizTalk services (instead of just bouncing the services at the end.)&amp;nbsp; The
reason for this is that the BTSNTSvc.exe process will not "let go" of an assembly
for which it has loaded a PDB file (so you have to terminate it.)&amp;nbsp; This means
you may not always want this switch on for the developer edit/run/debug cycle.&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.traceofthought.net/aggbug.ashx?id=f4d20493-70a2-46de-9642-a738dea1ccc0" /&gt;</description>
      <comments>http://www.traceofthought.net/CommentView,guid,f4d20493-70a2-46de-9642-a738dea1ccc0.aspx</comments>
      <category>Deployment Framework</category>
    </item>
  </channel>
</rss>