<?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>Benoît Laut - MSBuild</title>
    <link>http://benoitlaut.net/</link>
    <description>Let There Be Code</description>
    <language>en-us</language>
    <copyright>Benoît Laut</copyright>
    <lastBuildDate>Mon, 29 Mar 2010 07:05:30 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>benoit.laut@bewise.fr</managingEditor>
    <webMaster>benoit.laut@bewise.fr</webMaster>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=31dc906e-278f-4b17-9620-97deb967a71c</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,31dc906e-278f-4b17-9620-97deb967a71c.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,31dc906e-278f-4b17-9620-97deb967a71c.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=31dc906e-278f-4b17-9620-97deb967a71c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ce weekend je me suis attelé à l’un de mes projets perso que j’avais, il y a quelques
temps, migré vers un TFS 2010 Beta 2. Depuis mon passage sur la RC je n’avais pas
encore remis le nez dedans et ce weekend je me suis aperçu qu’une erreur survenait
lors de l’exécution des builds.
</p>
        <p>
Voici le détail de l’erreur : <em>File not found: C:\Windows\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe</em></p>
        <p>
L’erreur est assez parlante et facile à vérifier. J’ouvre un windows explorer et effectivement
le répertoire v4.0.21006 n’existe plus, puisqu’il correspond au numéro de version
du framework .Net 4.0 Beta 2. La version RC quant à elle a le numéro v4.0.30128.
</p>
        <p>
Il suffit donc de modifier ce numéro de version quelque part dans la définition des
Builds… Après quelques recherches sur le web, je tombe sur le blog de <a href="http://tomasscott.wordpress.com/2010/02/11/solving-build-problems-after-upgrading-from-beta2-to-rc/" target="_blank">Tomas
Scott</a> qui indique qu’il suffit de recréer une nouvelle collection et un nouveau
projet. Cette nouvelle collection se basera sur les templates de Build de la version
RC, qui eux pointerons vers le bon chemin du framework. Vous pouvez ensuite récupérer
ces templates et les remplacer par vos anciens.
</p>
        <p>
C’est en effet une solution simple et pratique… Sauf que moi je suis encore plus fainéant
que ça, il me fallait donc une autre solution. Si ce sont les templates qui merde,
alors autant chercher dans ces templates le chemin de MSBuild.exe et le remplacer
par le nouveau. Ou se trouve ce fameux template ? Dans le source control du Team Project,
à la racine, il y a un répertoire <em>BuildProcess Template</em> dans lequel on trouve
le template DefaultTemplate.xaml.
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb.png" width="645" height="287" />
          </a>
        </p>
        <p>
2 possibilités pour le modifier : en mode notepad ou en mode designer de workflow.
Si vous le faites en mode je suis un killer je le fais avec notepad, rien de plus
simple : faites une recherche de la chaine v4.0.21006 puis remplacer la par v4.0.30128.
Vous devriez normalement trouver 2 occurrences.
</p>
        <p>
Nous allons ici ouvrir le fichier dans le designer de workflow. Après double clic
sur le fichier, un joli designer s’ouvre et vous permet d’éditer le template du workflow
des builds. Si vous l’étudiez un peu, vous retrouverez les étapes que vous voyez passer
lorsque vous lancer une build. Il vous faut rechercher l’activité de type MSBuild, <em>Run
MSBuild for Project,</em> comme indiqué ci-dessous :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_4.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_1.png" width="516" height="245" />
          </a>
        </p>
        <p>
Une fois trouvé, il suffit de la sélectionner et d’afficher les propriétés. Dans les
propriétés rechercher la propriété ToolPath :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_6.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_2.png" width="650" height="419" />
          </a>
        </p>
        <p>
Editer la propriété afin de pointer sur la bonne version du framework, à savoir la
v4.0.30128 :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_8.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_3.png" width="413" height="195" />
          </a>
        </p>
        <p>
Recommencer cette opération en recherchant la 2ème activité de type MSBuild et mettre
à jour la propriété ToolPath.
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_10.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_4.png" width="536" height="649" />
          </a> 
</p>
        <p>
 
</p>
        <p>
Et voilà le tour est joué! Un petit checkin sur le fichier DefaultTemplate.xaml et
c’est fini. Pour le vérifier, il suffit de relancer la Build et de constater que l’erreur
a disparu.
</p>
        <p>
Si seulement tout pouvait être aussi simple dans la vie…
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=31dc906e-278f-4b17-9620-97deb967a71c" />
      </body>
      <title>Problème avec les Builds de TFS 2010 RC après mise à jour depuis la Beta 2</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,31dc906e-278f-4b17-9620-97deb967a71c.aspx</guid>
      <link>http://benoitlaut.net/2010/03/29/Probl%c3%a8meAvecLesBuildsDeTFS2010RCApr%c3%a8sMise%c3%80JourDepuisLaBeta2.aspx</link>
      <pubDate>Mon, 29 Mar 2010 07:05:30 GMT</pubDate>
      <description>&lt;p&gt;
Ce weekend je me suis attelé à l’un de mes projets perso que j’avais, il y a quelques
temps, migré vers un TFS 2010 Beta 2. Depuis mon passage sur la RC je n’avais pas
encore remis le nez dedans et ce weekend je me suis aperçu qu’une erreur survenait
lors de l’exécution des builds.
&lt;/p&gt;
&lt;p&gt;
Voici le détail de l’erreur : &lt;em&gt;File not found: C:\Windows\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
L’erreur est assez parlante et facile à vérifier. J’ouvre un windows explorer et effectivement
le répertoire v4.0.21006 n’existe plus, puisqu’il correspond au numéro de version
du framework .Net 4.0 Beta 2. La version RC quant à elle a le numéro v4.0.30128.
&lt;/p&gt;
&lt;p&gt;
Il suffit donc de modifier ce numéro de version quelque part dans la définition des
Builds… Après quelques recherches sur le web, je tombe sur le blog de &lt;a href="http://tomasscott.wordpress.com/2010/02/11/solving-build-problems-after-upgrading-from-beta2-to-rc/" target="_blank"&gt;Tomas
Scott&lt;/a&gt; qui indique qu’il suffit de recréer une nouvelle collection et un nouveau
projet. Cette nouvelle collection se basera sur les templates de Build de la version
RC, qui eux pointerons vers le bon chemin du framework. Vous pouvez ensuite récupérer
ces templates et les remplacer par vos anciens.
&lt;/p&gt;
&lt;p&gt;
C’est en effet une solution simple et pratique… Sauf que moi je suis encore plus fainéant
que ça, il me fallait donc une autre solution. Si ce sont les templates qui merde,
alors autant chercher dans ces templates le chemin de MSBuild.exe et le remplacer
par le nouveau. Ou se trouve ce fameux template ? Dans le source control du Team Project,
à la racine, il y a un répertoire &lt;em&gt;BuildProcess Template&lt;/em&gt; dans lequel on trouve
le template DefaultTemplate.xaml.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb.png" width="645" height="287"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
2 possibilités pour le modifier : en mode notepad ou en mode designer de workflow.
Si vous le faites en mode je suis un killer je le fais avec notepad, rien de plus
simple : faites une recherche de la chaine v4.0.21006 puis remplacer la par v4.0.30128.
Vous devriez normalement trouver 2 occurrences.
&lt;/p&gt;
&lt;p&gt;
Nous allons ici ouvrir le fichier dans le designer de workflow. Après double clic
sur le fichier, un joli designer s’ouvre et vous permet d’éditer le template du workflow
des builds. Si vous l’étudiez un peu, vous retrouverez les étapes que vous voyez passer
lorsque vous lancer une build. Il vous faut rechercher l’activité de type MSBuild, &lt;em&gt;Run
MSBuild for Project,&lt;/em&gt; comme indiqué ci-dessous :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_1.png" width="516" height="245"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Une fois trouvé, il suffit de la sélectionner et d’afficher les propriétés. Dans les
propriétés rechercher la propriété ToolPath :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_2.png" width="650" height="419"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Editer la propriété afin de pointer sur la bonne version du framework, à savoir la
v4.0.30128 :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_8.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_3.png" width="413" height="195"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Recommencer cette opération en recherchant la 2ème activité de type MSBuild et mettre
à jour la propriété ToolPath.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/ProblmeaveclesBuildsdeTFS2010RCaprsmisjo_7FCE/image_thumb_4.png" width="536" height="649"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Et voilà le tour est joué! Un petit checkin sur le fichier DefaultTemplate.xaml et
c’est fini. Pour le vérifier, il suffit de relancer la Build et de constater que l’erreur
a disparu.
&lt;/p&gt;
&lt;p&gt;
Si seulement tout pouvait être aussi simple dans la vie…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=31dc906e-278f-4b17-9620-97deb967a71c" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,31dc906e-278f-4b17-9620-97deb967a71c.aspx</comments>
      <category>MSBuild</category>
      <category>TFS</category>
    </item>
  </channel>
</rss>