Upgrading from GAT May CTP and December CTP

Note: This entry has moved

These are roughly the things that you need to change in your current package:

  1. Search replace "50505" with "51206" in the entire solution. This is the changed assembly version number that appears in all your .vstemplates.
  2. Delete all references from all projects to Microsoft.Practices.* and re-add them pointing to the new version of the binaries.
  3. Search replace "igt" with "gax" (for XML and .vstemplate files)
  4. All T3 templates need to be updated to the T4 syntax shared with the DSL tools
  5. Search & replace: Microsoft.Practices.RecipeFramework.Library.Actions.T3Action, Microsoft.Practices.RecipeFramework.Library with Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates.TextTemplateAction, Microsoft.Practices.RecipeFramework.VisualStudio.Library
  6. DteHelper class now lives in the Microsoft.Practices.RecipeFramework.Library namespace and assembly.
  7. In .vstemplate files, you could previously specify initial state for your recipes with the following syntax:
    <TemplateReference Name="Projects\ServiceAgent\ServiceAgent.vstemplate" Target="\ServiceAgents">
      <XmlSerializableHashtable xmlns="http://schemas.microsoft.com/pag/igt-xmlhashtable" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <Entries>
        <Entry>
         <Key xsi:type="xs:string">Key1</Key>
         <Value xsi:type="xs:string">Value1</Value>
        </Entry>
       </Entries>
      </XmlSerializableHashtable>
     </InitialState>-->
    </TemplateReference>
That has been replaced by the much simpler format:
    <TemplateReference Name="Items\SerializableClass.vstemplate" Target="/" >
     <InitialState xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <Entry>
       <Key>SerializableField</Key>
       <Value>Name</Value>
      </Entry>
     </InitialState>
    </TemplateReference> 
Of course, you can still use xsi:type just like the XmlSerializer does to get strongly typed initial values. You can put pretty much whatever you want there, as long as the value is compatible with the corresponding arguments defined for the recipe.

I think that's all, but let me know if you find anything that's missing or not working!

4 Comments

  • There are some changes in the &lt;PackageName&gt;.xml shema file as well.

  • Sorry... It is in the ConsoleApplication.vstemplate file. The XmlSerializeableHashtable and Entries elements are removed and the Key/Values just go right under the Entry element..

  • You're very right!

    Updating the entry now...

  • Also, just found another one...



    The T3Action is now the TextTemplateAction in the Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates

    namspace.



    In addition, the old way of using a DictionaryService to get a handle reference to the input properties is gone and you just use a &quot;this&quot; reference. Provided you use the new &quot;property processor&quot; declarations. The template and language declaration has also changed in the text templates.



    Finally, the directory structure is different if generate a solution under the RTM bits vs. the beta 2 bits. Not a breaking change, but still a difference.

Comments have been disabled for this content.