<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Benoît Laut</title>
    <link>http://benoitlaut.net/</link>
    <description>Let There Be Code</description>
    <language>en-us</language>
    <copyright>Benoît Laut</copyright>
    <lastBuildDate>Mon, 30 Aug 2010 07:36:20 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>benoit.laut@bewise.fr</managingEditor>
    <webMaster>benoit.laut@bewise.fr</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BenoitLaut" /><feedburner:info uri="benoitlaut" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=dc87cdbf-1199-46ca-9fe6-fd2c52e35af2</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,dc87cdbf-1199-46ca-9fe6-fd2c52e35af2.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,dc87cdbf-1199-46ca-9fe6-fd2c52e35af2.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=dc87cdbf-1199-46ca-9fe6-fd2c52e35af2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Les congés arrivent à leur fin pour pas mal de monde, il est donc temps de faire le
bilan de l’été et de se remettre au travail!
</p>
        <p>
Pour moi l’été a très bien commencé, puisque j’ai été récompensé du titre MVP Visual
Studio ALM par Microsoft. Ensuite, à part faire les fêtes de la Madeleine je me suis
motivé à passer la certification 70-512 Administration de TFS 2010. Pas de grande
surprise, tous les points sont abordés : installation et configuration de TFS, Lab
Management, TFS Proxy, Build… Bref, <a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-512#tab2" target="_blank">tous
les sujets annoncés sur Microsoft Learning</a> sont abordés dans l’exam. Actuellement
Microsoft ne fournit aucun cours ni bouquin pour le préparer. Toutefois une bonne
connaissance de TFS, du guide d’installation et du guide d’administration suffisent. 
</p>
        <p>
L’été continue à être agité pour moi puisque je découvre actuellement XNA et Windows
Phone 7. D’ailleurs à ce sujet, je vous conseille d’aller voir <a href="http://www.facebook.com/video/video.php?v=1413141241316&amp;oid=129459787073480" target="_blank">cette
magnifique vidéo de Nova4Phone</a> qui participe au concours WP7 (si vous aimez, “likez”
et faites tourner la vidéo). Nova4Phone est le moteur 3D pour Windows Phone développé
par David Catuhe, qui tourne sur un vrai device. La fluidité est époustouflante! Like,
like, like!
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=dc87cdbf-1199-46ca-9fe6-fd2c52e35af2" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/D33Yq69c2kM" height="1" width="1" /></body>
      <title>Bilan de l’été : MVP Visual Studio ALM et Certif TFS 2010</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,dc87cdbf-1199-46ca-9fe6-fd2c52e35af2.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/D33Yq69c2kM/BilanDeL%c3%a9t%c3%a9MVPVisualStudioALMEtCertifTFS2010.aspx</link>
      <pubDate>Mon, 30 Aug 2010 07:36:20 GMT</pubDate>
      <description>&lt;p&gt;
Les congés arrivent à leur fin pour pas mal de monde, il est donc temps de faire le
bilan de l’été et de se remettre au travail!
&lt;/p&gt;
&lt;p&gt;
Pour moi l’été a très bien commencé, puisque j’ai été récompensé du titre MVP Visual
Studio ALM par Microsoft. Ensuite, à part faire les fêtes de la Madeleine je me suis
motivé à passer la certification 70-512 Administration de TFS 2010. Pas de grande
surprise, tous les points sont abordés : installation et configuration de TFS, Lab
Management, TFS Proxy, Build… Bref, &lt;a href="http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-512#tab2" target="_blank"&gt;tous
les sujets annoncés sur Microsoft Learning&lt;/a&gt; sont abordés dans l’exam. Actuellement
Microsoft ne fournit aucun cours ni bouquin pour le préparer. Toutefois une bonne
connaissance de TFS, du guide d’installation et du guide d’administration suffisent. 
&lt;/p&gt;
&lt;p&gt;
L’été continue à être agité pour moi puisque je découvre actuellement XNA et Windows
Phone 7. D’ailleurs à ce sujet, je vous conseille d’aller voir &lt;a href="http://www.facebook.com/video/video.php?v=1413141241316&amp;amp;oid=129459787073480" target="_blank"&gt;cette
magnifique vidéo de Nova4Phone&lt;/a&gt; qui participe au concours WP7 (si vous aimez, “likez”
et faites tourner la vidéo). Nova4Phone est le moteur 3D pour Windows Phone développé
par David Catuhe, qui tourne sur un vrai device. La fluidité est époustouflante! Like,
like, like!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=dc87cdbf-1199-46ca-9fe6-fd2c52e35af2" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,dc87cdbf-1199-46ca-9fe6-fd2c52e35af2.aspx</comments>
      <category>TFS</category>
    <feedburner:origLink>http://benoitlaut.net/2010/08/30/BilanDeL%c3%a9t%c3%a9MVPVisualStudioALMEtCertifTFS2010.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=4cfd7e13-ba75-49ce-8881-744ada2f51a5</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,4cfd7e13-ba75-49ce-8881-744ada2f51a5.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,4cfd7e13-ba75-49ce-8881-744ada2f51a5.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=4cfd7e13-ba75-49ce-8881-744ada2f51a5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Je viens de publier <a href="http://www.techheadbrothers.com/Articles.aspx/developpement-86-64-framework-dotnet" target="_blank">un
nouvel article sur le développement 32bits et 64bits</a>.
</p>
        <p>
“<em>Avec l’arrivée du Framework 4.0 et de Visual Studio 2010, Microsoft a fait de
gros effort sur le développement d’applications 64bits avec Visual Studio 2010. </em><a href="http://patricelamarche.net/2010/05/11/L%c3%a9gersChangementsAutourDu64BitsEtDeVisualStudio2010.aspx"><em>Patrice
Lamarche nous livre dans ce billet</em></a><em> l’un des changements majeur concernant
la politique de compilation de vos projets UI avec Visual Studio 2010.</em></p>
        <p>
          <em>Au-delà de l’IDE, le Framework 4.0, et plus précisément la classe System.Environment,
nous fournit des propriétés permettant de savoir si l’OS est en 32 ou 64bits, ou de
récupérer le répertoire Program File (x86) ou encore le répertoire Windows\SYSWOW64…</em>
        </p>
        <p>
          <em>Quelles sont les différences entre ces OS ? Comment des applications 32 bits et
64 bits cohabitent ? Comment les prendre en compte dans nos développements ?</em>”
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=4cfd7e13-ba75-49ce-8881-744ada2f51a5" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/CZADIkJ4Gjs" height="1" width="1" /></body>
      <title>Développement x86 et x64 avec le framework .Net</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,4cfd7e13-ba75-49ce-8881-744ada2f51a5.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/CZADIkJ4Gjs/D%c3%a9veloppementX86EtX64AvecLeFrameworkNet.aspx</link>
      <pubDate>Mon, 05 Jul 2010 06:23:06 GMT</pubDate>
      <description>&lt;p&gt;
Je viens de publier &lt;a href="http://www.techheadbrothers.com/Articles.aspx/developpement-86-64-framework-dotnet" target="_blank"&gt;un
nouvel article sur le développement 32bits et 64bits&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
“&lt;em&gt;Avec l’arrivée du Framework 4.0 et de Visual Studio 2010, Microsoft a fait de
gros effort sur le développement d’applications 64bits avec Visual Studio 2010. &lt;/em&gt;&lt;a href="http://patricelamarche.net/2010/05/11/L%c3%a9gersChangementsAutourDu64BitsEtDeVisualStudio2010.aspx"&gt;&lt;em&gt;Patrice
Lamarche nous livre dans ce billet&lt;/em&gt;&lt;/a&gt;&lt;em&gt; l’un des changements majeur concernant
la politique de compilation de vos projets UI avec Visual Studio 2010.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Au-delà de l’IDE, le Framework 4.0, et plus précisément la classe System.Environment,
nous fournit des propriétés permettant de savoir si l’OS est en 32 ou 64bits, ou de
récupérer le répertoire Program File (x86) ou encore le répertoire Windows\SYSWOW64…&lt;/em&gt; 
&lt;p&gt;
&lt;em&gt;Quelles sont les différences entre ces OS ? Comment des applications 32 bits et
64 bits cohabitent ? Comment les prendre en compte dans nos développements ?&lt;/em&gt;”
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=4cfd7e13-ba75-49ce-8881-744ada2f51a5" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,4cfd7e13-ba75-49ce-8881-744ada2f51a5.aspx</comments>
      <category>C#</category>
      <category>Visual Studio</category>
    <feedburner:origLink>http://benoitlaut.net/2010/07/05/D%c3%a9veloppementX86EtX64AvecLeFrameworkNet.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=eb1002ed-a1c9-484b-b851-b1ab469e9dd3</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,eb1002ed-a1c9-484b-b851-b1ab469e9dd3.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,eb1002ed-a1c9-484b-b851-b1ab469e9dd3.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=eb1002ed-a1c9-484b-b851-b1ab469e9dd3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Je ne suis pas trop pour ce genre de post, mais mon ami et collègue <a href="http://www.dotmim.com/blogs/mim/default.aspx" target="_blank">Sebastien
Pertus</a> m’a passé la patate chaude, et je me dois donc de la renvoyer…
</p>
        <ol>
          <li>
Mon nom, Laut s'écrit avec un T et se prononce lo, pas Lote! Je suis du nord et dans
le nord on ne dit pas moinsse... 
</li>
          <li>
95% des gens l'oublis, mais mon prénom, Benoît, s'écrit avec un accent circonflexe
sur le i. 
</li>
          <li>
Ben, BenBen, CorBen (Dallas), PtiBen, $uddenBen, Biniouze, Strogoff, Eole, Tic (de
Tic et Tac) et dernièrement Dr House, sont quelques uns des surnoms que l’on pu me
donner ces 15 dernières années. 
</li>
          <li>
Je suis né à Monaco. Entendez par là la clinique Monaco à Valenciennes. Ville célèbre
notamment pour son (ancien) maire, JL Borloo qui a fait venir Toyota pour fabriquer
la Yaris (seul endroit dans le monde où elle est fabriquée) et qui est notamment à
l'origine de la remontée du VAFC en ligue 1 (ancien club USVA). 
</li>
          <li>
A 1 an je tombe 2 fois de suite de ma chaise haute (je voulais me balancer comme sur
une balançoire), à 5ans ma sœur me casse le pouce en me lançant une boule de pétanque
sur la main, à 11 ans je me fais renverser sur un passage piéton par une auto école.
A 30 ans, à Bewise, accident de travail, je me fais une entorse en descendant les
escaliers… 
</li>
          <li>
Mon premier vrai concert en tant que spectateur : 1996, j'avais 16ans, ACDC pour la
tournée Ballbreaker. Mon groupe mythique depuis l'age de 12 ans. Je peux dire que
j'ai connu Bon Scott, chanteur mythique d'ACDC, mort le 19 février 1980, puisque je
suis né 26 jours avant ce drame. J'aime beaucoup de style de musique : Hard Rock,
Blues Rock, Heavy Metal, Death Metal, Power Metal, Trash Metal, Dark Metal Melodyc,
Black Metal Symphonic Alcolic... Mais ça ne m'a pas empêché d'aller à des concerts
de JJ Goldman, Mano Solo, les ogres de Barback ou encore Marcel et son orchestre. 
</li>
          <li>
Guitariste aux cheveux longs, j'ai joué 8 ans dans un groupe de Metal. Une dizaine
de concerts dans des bars et discothèques, une quinzaine de compos et une corde cassée
à chaque début de concert. Je joue sur une guitare Ibanez et un gros Marshal 100W
2 corps!! 
</li>
          <li>
Un jour, un grand sportif j'ai été. Gymnastique : je faisais tous les grand écarts
possible (costal, facial, nasal...). Handball : j'ai participé aux sélections du nord.
Cyclisme : à 17ans je faisais ma première traversée de la France, 1100km en 8jours
de Valenciennes (Nord) à Pamiers (Ariège). A la même période je gravissais pour la
première fois le Mont Ventoux et le Tourmalet.  
</li>
          <li>
Si je devais me comparer à une boisson, ça serait la bière : frais, pétillant, du
caractère, doux et amer à la fois... Mes préférées : Triple de Bruges et Triple Karmeliet. 
</li>
          <li>
J’habite Toulouse depuis 5 ans bientôt, mais je reste bien sur très attaché au Nord.
Je suis notamment un grand supporter du VAFC que j’ai du voir pour la première fois
au stade Nungesser à 10 ans. 8ème de ligue 1 en 2009-2010, pour les personnes qui
ne le savent pas, Valenciennes est de retour en ligue 1 depuis 2005.</li>
        </ol>
        <p>
Je passe maintenant la main à <a href="http://blog.djeepy1.net/" target="_blank">JP</a>. 
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=eb1002ed-a1c9-484b-b851-b1ab469e9dd3" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/9bl7nqhfrCw" height="1" width="1" /></body>
      <title>10 trucs sur moi</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,eb1002ed-a1c9-484b-b851-b1ab469e9dd3.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/9bl7nqhfrCw/10TrucsSurMoi.aspx</link>
      <pubDate>Mon, 05 Jul 2010 04:02:00 GMT</pubDate>
      <description>&lt;p&gt;
Je ne suis pas trop pour ce genre de post, mais mon ami et collègue &lt;a href="http://www.dotmim.com/blogs/mim/default.aspx" target="_blank"&gt;Sebastien
Pertus&lt;/a&gt; m’a passé la patate chaude, et je me dois donc de la renvoyer…
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Mon nom, Laut s'écrit avec un T et se prononce lo, pas Lote! Je suis du nord et dans
le nord on ne dit pas moinsse... 
&lt;li&gt;
95% des gens l'oublis, mais mon prénom, Benoît, s'écrit avec un accent circonflexe
sur le i. 
&lt;li&gt;
Ben, BenBen, CorBen (Dallas), PtiBen, $uddenBen, Biniouze, Strogoff, Eole, Tic (de
Tic et Tac) et dernièrement Dr House, sont quelques uns des surnoms que l’on pu me
donner ces 15 dernières années. 
&lt;li&gt;
Je suis né à Monaco. Entendez par là la clinique Monaco à Valenciennes. Ville célèbre
notamment pour son (ancien) maire, JL Borloo qui a fait venir Toyota pour fabriquer
la Yaris (seul endroit dans le monde où elle est fabriquée) et qui est notamment à
l'origine de la remontée du VAFC en ligue 1 (ancien club USVA). 
&lt;li&gt;
A 1 an je tombe 2 fois de suite de ma chaise haute (je voulais me balancer comme sur
une balançoire), à 5ans ma sœur me casse le pouce en me lançant une boule de pétanque
sur la main, à 11 ans je me fais renverser sur un passage piéton par une auto école.
A 30 ans, à Bewise, accident de travail, je me fais une entorse en descendant les
escaliers… 
&lt;li&gt;
Mon premier vrai concert en tant que spectateur : 1996, j'avais 16ans, ACDC pour la
tournée Ballbreaker. Mon groupe mythique depuis l'age de 12 ans. Je peux dire que
j'ai connu Bon Scott, chanteur mythique d'ACDC, mort le 19 février 1980, puisque je
suis né 26 jours avant ce drame. J'aime beaucoup de style de musique : Hard Rock,
Blues Rock, Heavy Metal, Death Metal, Power Metal, Trash Metal, Dark Metal Melodyc,
Black Metal Symphonic Alcolic... Mais ça ne m'a pas empêché d'aller à des concerts
de JJ Goldman, Mano Solo, les ogres de Barback ou encore Marcel et son orchestre. 
&lt;li&gt;
Guitariste aux cheveux longs, j'ai joué 8 ans dans un groupe de Metal. Une dizaine
de concerts dans des bars et discothèques, une quinzaine de compos et une corde cassée
à chaque début de concert. Je joue sur une guitare Ibanez et un gros Marshal 100W
2 corps!! 
&lt;li&gt;
Un jour, un grand sportif j'ai été. Gymnastique : je faisais tous les grand écarts
possible (costal, facial, nasal...). Handball : j'ai participé aux sélections du nord.
Cyclisme : à 17ans je faisais ma première traversée de la France, 1100km en 8jours
de Valenciennes (Nord) à Pamiers (Ariège). A la même période je gravissais pour la
première fois le Mont Ventoux et le Tourmalet.&amp;nbsp; 
&lt;li&gt;
Si je devais me comparer à une boisson, ça serait la bière : frais, pétillant, du
caractère, doux et amer à la fois... Mes préférées : Triple de Bruges et Triple Karmeliet. 
&lt;li&gt;
J’habite Toulouse depuis 5 ans bientôt, mais je reste bien sur très attaché au Nord.
Je suis notamment un grand supporter du VAFC que j’ai du voir pour la première fois
au stade Nungesser à 10 ans. 8ème de ligue 1 en 2009-2010, pour les personnes qui
ne le savent pas, Valenciennes est de retour en ligue 1 depuis 2005.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Je passe maintenant la main à &lt;a href="http://blog.djeepy1.net/" target="_blank"&gt;JP&lt;/a&gt;. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=eb1002ed-a1c9-484b-b851-b1ab469e9dd3" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,eb1002ed-a1c9-484b-b851-b1ab469e9dd3.aspx</comments>
      <category>Fun</category>
    <feedburner:origLink>http://benoitlaut.net/2010/07/05/10TrucsSurMoi.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=03f0d3a4-03df-4f36-948c-29359b431e64</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,03f0d3a4-03df-4f36-948c-29359b431e64.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,03f0d3a4-03df-4f36-948c-29359b431e64.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=03f0d3a4-03df-4f36-948c-29359b431e64</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/image_2.png">
            <img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb.png" width="460" height="207" />
          </a> Avec
un collègue nous nous sommes posés quelques questions sur le développement autour
d’Office et surtout sur le déploiement des PIA (Primary Interop Assembly). 
</p>
        <p>
La problématique est la suivante : sur nos postes nous avons Office 2010 d’installé.
Nous avons donc référencé, dans notre projet de manipulation de documents Office,
les PIA d’Office 2010. Ces assemblies permettent aux applications .Net d’utiliser
les fonctionnalités Office. Ceci signifie que lors du déploiement de l’application,
il faut qu’Office et les PIA soient installés sur le poste client (ou sur le serveur
si c’est une application web par exemple). Pour information, avec Office 2010, les
PIA sont forcément installées, ce qui n’était pas le cas avec les anciennes versions.
Elles ne sont d’ailleurs pas encore “redistribuable” en version 2010.
</p>
        <p>
Nous venons de découvrir que sur le serveur c’est Office 2007 qui est installé, or
le projet doit à terme fonctionner avec Office 2010… 
</p>
        <p>
Doit-on changer nos références? [Edit] Non. Lorsque l’on instancie une classe Application
(pour Word par exemple), celle-ci est instanciée (en interne) en utilisant le ProgID
“Word.Application” et non “Word.Application.14”. Ce ProgID est indépendant de la version
d’Office installée et donc si les PIA 2007 sont installées, notre application fonctionnera.
</p>
        <p>
La version installée sur le serveur est Office 2007 (version 12.0). Si nous avions
référencé les PIA 12.0, après installation d’Office 2010 la redirection se ferait
automatiquement. Office installe des assemblies de redirection de version dans le
GAC (Policy.12.0.Microsoft.Office.Interop.XXX). Chaque assembly est accompagnée d’un
fichier de configuration qui indique à la CLR que lorsque notre application lui demandera
de charger une PIA 12.0, elle devra lui fournir la version 14.0.
</p>
        <p>
 
</p>
        <p>
Pour s’en assurer, il suffit d’ouvrir un Command Prompt et de se rendre dans le répertoire
du GAC de l’assembly Policy comme indiqué ci-dessous :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/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/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb_1.png" width="733" height="317" />
          </a>
        </p>
        <p>
Dans le répertoire Policy.12.0.Microsoft.Office.Interop.Word se trouvent une assembly
et un fichier de config. Pour éditer le fichier de configuration il suffit depuis
le command prompt de taper le nom de fichier. Ceci aura pour effet de l’ouvrir dans
Visual Studio. Nous pouvons ainsi visualiser le fameux BindingRedirect de la version
12.0 vers la version 14.0 :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/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/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb_2.png" width="990" height="193" />
          </a>
        </p>
        <p>
Les redirections d’Office 2003 vers 2010 sont également présentes dans le GAC.
</p>
        <div class="wlWriterHeaderFooter" style="margin:0px; padding:4px 0px 4px 1px;">
          <iframe src="http://www.facebook.com/widgets/like.php?href=http://benoitlaut.net/2010/05/17/D%c3%a9veloppementOfficeEtRedirectionsDesPIA.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px">
          </iframe>
        </div>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=03f0d3a4-03df-4f36-948c-29359b431e64" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/tD2sAtb_LlM" height="1" width="1" /></body>
      <title>Développement Office et redirections des PIA</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,03f0d3a4-03df-4f36-948c-29359b431e64.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/tD2sAtb_LlM/D%c3%a9veloppementOfficeEtRedirectionsDesPIA.aspx</link>
      <pubDate>Mon, 17 May 2010 15:18:41 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb.png" width="460" height="207"&gt;&lt;/a&gt; Avec
un collègue nous nous sommes posés quelques questions sur le développement autour
d’Office et surtout sur le déploiement des PIA (Primary Interop Assembly). 
&lt;/p&gt;
&lt;p&gt;
La problématique est la suivante : sur nos postes nous avons Office 2010 d’installé.
Nous avons donc référencé, dans notre projet de manipulation de documents Office,
les PIA d’Office 2010. Ces assemblies permettent aux applications .Net d’utiliser
les fonctionnalités Office. Ceci signifie que lors du déploiement de l’application,
il faut qu’Office et les PIA soient installés sur le poste client (ou sur le serveur
si c’est une application web par exemple). Pour information, avec Office 2010, les
PIA sont forcément installées, ce qui n’était pas le cas avec les anciennes versions.
Elles ne sont d’ailleurs pas encore “redistribuable” en version 2010.
&lt;/p&gt;
&lt;p&gt;
Nous venons de découvrir que sur le serveur c’est Office 2007 qui est installé, or
le projet doit à terme fonctionner avec Office 2010… 
&lt;/p&gt;
&lt;p&gt;
Doit-on changer nos références? [Edit] Non. Lorsque l’on instancie une classe Application
(pour Word par exemple), celle-ci est instanciée (en interne) en utilisant le ProgID
“Word.Application” et non “Word.Application.14”. Ce ProgID est indépendant de la version
d’Office installée et donc si les PIA 2007 sont installées, notre application fonctionnera.
&lt;/p&gt;
&lt;p&gt;
La version installée sur le serveur est Office 2007 (version 12.0). Si nous avions
référencé les PIA 12.0, après installation d’Office 2010 la redirection se ferait
automatiquement. Office installe des assemblies de redirection de version dans le
GAC (Policy.12.0.Microsoft.Office.Interop.XXX). Chaque assembly est accompagnée d’un
fichier de configuration qui indique à la CLR que lorsque notre application lui demandera
de charger une PIA 12.0, elle devra lui fournir la version 14.0.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Pour s’en assurer, il suffit d’ouvrir un Command Prompt et de se rendre dans le répertoire
du GAC de l’assembly Policy comme indiqué ci-dessous :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/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/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb_1.png" width="733" height="317"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Dans le répertoire Policy.12.0.Microsoft.Office.Interop.Word se trouvent une assembly
et un fichier de config. Pour éditer le fichier de configuration il suffit depuis
le command prompt de taper le nom de fichier. Ceci aura pour effet de l’ouvrir dans
Visual Studio. Nous pouvons ainsi visualiser le fameux BindingRedirect de la version
12.0 vers la version 14.0 :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/DveloppementOfficeetredirectionsdesPIA_F365/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/DveloppementOfficeetredirectionsdesPIA_F365/image_thumb_2.png" width="990" height="193"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Les redirections d’Office 2003 vers 2010 sont également présentes dans le GAC.
&lt;/p&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:4px 0px 4px 1px;"&gt;
&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://benoitlaut.net/2010/05/17/D%c3%a9veloppementOfficeEtRedirectionsDesPIA.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=03f0d3a4-03df-4f36-948c-29359b431e64" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,03f0d3a4-03df-4f36-948c-29359b431e64.aspx</comments>
      <category>Framework .Net</category>
      <category>VSTO</category>
    <feedburner:origLink>http://benoitlaut.net/2010/05/17/D%c3%a9veloppementOfficeEtRedirectionsDesPIA.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=efff825d-7cd5-465b-995e-fe3b7d02b673</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,efff825d-7cd5-465b-995e-fe3b7d02b673.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,efff825d-7cd5-465b-995e-fe3b7d02b673.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=efff825d-7cd5-465b-995e-fe3b7d02b673</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/a9ebcdb49973_EDF1/image_4.png">
            <img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/a9ebcdb49973_EDF1/image_thumb_1.png" width="200" height="169" />
          </a>
        </p>
        <p>
Parmi les nombreuses nouveautés du développement d’addin VSTO, nous retrouvons bien
évidemment le Ribbon, qui est maintenant disponible depuis l’Explorer d’Outlook 2010.
A l’ombre de cette grande nouveauté, d’autres font leur apparition mais passent un
peu inaperçu.   
</p>
        <p>
Dans le développement d’addin VSTO pour Outlook 2010, il est aujourd’hui possible
de définir des icones personnalisées pour certains répertoires.  Comme vous pouvez
le voir sur l’image ci-contre, j’ai défini une icône custom pour 2 de mes répertoires.
La classe MAPIFolder possède maintenant une méthode SetCustomIcon qui prend en paramètre
une instance de la classe StdPicture : 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2c41b03f-ccf3-42f8-b140-ac5034d1e051" class="wlWriterSmartContent">
          <div class="le-pavsc-container">
            <div style="background: #fff; max-height: 300px; overflow: auto">
              <ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;">
                <li>
                  <span style="color:#808080">///</span>
                  <span style="color:#008000">
                  </span>
                  <span style="color:#808080">&lt;summary&gt;</span>
                  <span style="color:#008000">
                  </span>
                </li>
                <li class="even">
                  <span style="color:#808080">///</span>
                  <span style="color:#008000"> Sets a custom icon
that is specified by Picture for the folder </span>
                </li>
                <li>
                  <span style="color:#808080">///</span>
                  <span style="color:#008000">
                  </span>
                  <span style="color:#808080">&lt;/summary&gt;</span>
                  <span style="color:#008000">
                  </span>
                </li>
                <li class="even">
                  <span style="color:#808080">///</span>
                  <span style="color:#008000">
                  </span>
                  <span style="color:#808080">&lt;param
name="Picture"&gt;</span>
                  <span style="color:#008000">Specifies the custom
icon for the folder</span>
                  <span style="color:#808080">&lt;/param&gt;</span>
                  <span style="color:#008000">
                  </span>
                </li>
                <li>
                  <span style="color:#0000ff">void</span> SetCustomIcon(stdole.<span style="color:#2b91af">StdPicture</span> Picture);</li>
              </ol>
            </div>
          </div>
        </div>
        <p>
  
</p>
        <p>
  
</p>
        <p>
Afin d’obtenir une instance de type StdPicture à partir d’un objet de type Bitmap
(ou Image), il faut créer une classe qui hérite de AxHost. Cette classe est un wrapper
de contrôle ActiveX et possède une méthode statique (et protected) qui se nomme GetIPictureDispFromPicture
: 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c9a89bfd-a228-4002-ba86-624415777bb3" class="wlWriterSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background: #fff; max-height: 300px; overflow: auto">
              <ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;">
                <li>
                  <span style="color:#0000ff">sealed</span>
                  <span style="color:#0000ff">public</span>
                  <span style="color:#0000ff">class</span>
                  <span style="color:#2b91af">ConvertImage</span> :
System.Windows.Forms.<span style="color:#2b91af">AxHost</span></li>
                <li style="background: #f3f3f3">
{</li>
                <li>
                  <span style="color:#0000ff">private</span> ConvertImage()</li>
                <li style="background: #f3f3f3">
: <span style="color:#0000ff">base</span>(<span style="color:#0000ff">null</span>)</li>
                <li>
{</li>
                <li style="background: #f3f3f3">
}</li>
                <li>
                  <span style="color:#0000ff">public</span>
                  <span style="color:#0000ff">static</span> stdole.<span style="color:#2b91af">StdPicture</span> ConvertToStdPicture(System.Drawing.<span style="color:#2b91af">Image</span> image)</li>
                <li style="background: #f3f3f3">
{</li>
                <li>
                  <span style="color:#0000ff">return</span> (stdole.<span style="color:#2b91af">StdPicture</span>)GetIPictureDispFromPicture(image);</li>
                <li style="background: #f3f3f3">
}</li>
                <li>
}</li>
              </ol>
            </div>
          </div>
        </div>
        <p>
        </p>
        <p>
Le tour est joué, il n’y a plus qu’à faire appel à la méthode SetCustomIcon : 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:59c08d6e-0fa0-49fc-a5e5-160def353655" class="wlWriterSmartContent">
          <div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt">
            <div style="background: #fff; max-height: 300px; overflow: auto">
              <ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;">
                <li>
                  <span style="color:#0000ff">private</span>
                  <span style="color:#0000ff">void</span> SetCustomIcon(<span style="color:#2b91af">MAPIFolder</span> folder,
System.Drawing.<span style="color:#2b91af">Bitmap</span> image)</li>
                <li style="background: #f3f3f3">
{</li>
                <li>
folder.SetCustomIcon(<span style="color:#2b91af">ConvertImage</span>.ConvertToStdPicture(image));</li>
                <li style="background: #f3f3f3">
}</li>
              </ol>
            </div>
          </div>
        </div>
        <div class="wlWriterHeaderFooter" style="margin:0px; padding:4px 0px 4px 1px;">
          <iframe src="http://www.facebook.com/widgets/like.php?href=http://benoitlaut.net/2010/05/15/Nouveaut%c3%a9sPourLesAddinsOutlook2010MAPIFolderSetCustomIcon.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px">
          </iframe>
        </div>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=efff825d-7cd5-465b-995e-fe3b7d02b673" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/OSWS32eHZng" height="1" width="1" /></body>
      <title>Nouveautés pour les addins Outlook 2010 : MAPIFolder.SetCustomIcon</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,efff825d-7cd5-465b-995e-fe3b7d02b673.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/OSWS32eHZng/Nouveaut%c3%a9sPourLesAddinsOutlook2010MAPIFolderSetCustomIcon.aspx</link>
      <pubDate>Sat, 15 May 2010 15:03:02 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/a9ebcdb49973_EDF1/image_4.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/a9ebcdb49973_EDF1/image_thumb_1.png" width="200" height="169"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Parmi les nombreuses nouveautés du développement d’addin VSTO, nous retrouvons bien
évidemment le Ribbon, qui est maintenant disponible depuis l’Explorer d’Outlook 2010.
A l’ombre de cette grande nouveauté, d’autres font leur apparition mais passent un
peu inaperçu.&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Dans le développement d’addin VSTO pour Outlook 2010, il est aujourd’hui possible
de définir des icones personnalisées pour certains répertoires.&amp;nbsp; Comme vous pouvez
le voir sur l’image ci-contre, j’ai défini une icône custom pour 2 de mes répertoires.
La classe MAPIFolder possède maintenant une méthode SetCustomIcon qui prend en paramètre
une instance de la classe StdPicture : 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2c41b03f-ccf3-42f8-b140-ac5034d1e051" class="wlWriterSmartContent"&gt;
&lt;div class="le-pavsc-container"&gt;
&lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt;
&lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt;
&lt;li&gt;
&lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;
&lt;/li&gt;
&lt;li class="even"&gt;
&lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; Sets a custom icon
that is specified by Picture for the folder &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;
&lt;/li&gt;
&lt;li class="even"&gt;
&lt;span style="color:#808080"&gt;///&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;param
name=&amp;quot;Picture&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color:#008000"&gt;Specifies the custom
icon for the folder&lt;/span&gt;&lt;span style="color:#808080"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color:#008000"&gt; &lt;/span&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;void&lt;/span&gt; SetCustomIcon(stdole.&lt;span style="color:#2b91af"&gt;StdPicture&lt;/span&gt; Picture);&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
Afin d’obtenir une instance de type StdPicture à partir d’un objet de type Bitmap
(ou Image), il faut créer une classe qui hérite de AxHost. Cette classe est un wrapper
de contrôle ActiveX et possède une méthode statique (et protected) qui se nomme GetIPictureDispFromPicture
: 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c9a89bfd-a228-4002-ba86-624415777bb3" class="wlWriterSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt;
&lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;sealed&lt;/span&gt; &lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af"&gt;ConvertImage&lt;/span&gt; :
System.Windows.Forms.&lt;span style="color:#2b91af"&gt;AxHost&lt;/span&gt;
&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
{&lt;/li&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; ConvertImage()&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
: &lt;span style="color:#0000ff"&gt;base&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;null&lt;/span&gt;)&lt;/li&gt;
&lt;li&gt;
{&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
}&lt;/li&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;public&lt;/span&gt; &lt;span style="color:#0000ff"&gt;static&lt;/span&gt; stdole.&lt;span style="color:#2b91af"&gt;StdPicture&lt;/span&gt; ConvertToStdPicture(System.Drawing.&lt;span style="color:#2b91af"&gt;Image&lt;/span&gt; image)&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
{&lt;/li&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;return&lt;/span&gt; (stdole.&lt;span style="color:#2b91af"&gt;StdPicture&lt;/span&gt;)GetIPictureDispFromPicture(image);&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
}&lt;/li&gt;
&lt;li&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Le tour est joué, il n’y a plus qu’à faire appel à la méthode SetCustomIcon : 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:59c08d6e-0fa0-49fc-a5e5-160def353655" class="wlWriterSmartContent"&gt;
&lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt;
&lt;div style="background: #fff; max-height: 300px; overflow: auto"&gt;
&lt;ol style="background: #ffffff; margin: 0; padding: 0 0 0 5px;"&gt;
&lt;li&gt;
&lt;span style="color:#0000ff"&gt;private&lt;/span&gt; &lt;span style="color:#0000ff"&gt;void&lt;/span&gt; SetCustomIcon(&lt;span style="color:#2b91af"&gt;MAPIFolder&lt;/span&gt; folder,
System.Drawing.&lt;span style="color:#2b91af"&gt;Bitmap&lt;/span&gt; image)&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
{&lt;/li&gt;
&lt;li&gt;
folder.SetCustomIcon(&lt;span style="color:#2b91af"&gt;ConvertImage&lt;/span&gt;.ConvertToStdPicture(image));&lt;/li&gt;
&lt;li style="background: #f3f3f3"&gt;
}&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="wlWriterHeaderFooter" style="margin:0px; padding:4px 0px 4px 1px;"&gt;
&lt;iframe src="http://www.facebook.com/widgets/like.php?href=http://benoitlaut.net/2010/05/15/Nouveaut%c3%a9sPourLesAddinsOutlook2010MAPIFolderSetCustomIcon.aspx" scrolling="no" frameborder="0" style="border:none; width:450px; height:80px"&gt;
&lt;/iframe&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=efff825d-7cd5-465b-995e-fe3b7d02b673" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,efff825d-7cd5-465b-995e-fe3b7d02b673.aspx</comments>
      <category>C#</category>
      <category>VSTO</category>
    <feedburner:origLink>http://benoitlaut.net/2010/05/15/Nouveaut%c3%a9sPourLesAddinsOutlook2010MAPIFolderSetCustomIcon.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=83e9f0f7-fedf-4e89-a2d6-ed75d0672193</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,83e9f0f7-fedf-4e89-a2d6-ed75d0672193.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,83e9f0f7-fedf-4e89-a2d6-ed75d0672193.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=83e9f0f7-fedf-4e89-a2d6-ed75d0672193</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;">
          <script type="text/javascript"> tweetmeme_url = 'http://benoitlaut.net/2010/05/11/NouvelArticleInstrumenterEtAnalyserSonApplicationAvecDotFuscator40.aspx'; tweetmeme_source = 'suddenben'; </script>
          <script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js">
          </script>
          <br />
          <br />
        </div>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/NouvelarticleInstrumenteretanalyserson.0_EAA6/image_2.png">
            <img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/NouvelarticleInstrumenteretanalyserson.0_EAA6/image_thumb.png" width="568" height="208" />
          </a>
        </p>
        <p>
Comme je vous le disais dans <a href="http://benoitlaut.net/2010/05/07/CodeplexEtLanalyseDapplicationsAvecDotFuscator40.aspx" target="_blank">mon
dernier post</a>, CodePlex propose d’utiliser les nouveaux outils de DotFuscator 4.0
pour analyser son application. Qui utilise l’application, quelles sont les fonctionnalités
utilisées… DotFuscator nous propose d’injecter du code dans nos assemblies afin d’obtenir
ses éléments de mesure. 
</p>
        <p>
Ce weekend j’ai donc creusé l’utilisation de ces outils et je vous propose de les
découvrir à travers <a href="http://www.techheadbrothers.com/Articles.aspx/instrumenter-analyser-application-dotfuscator-4-0" target="_blank">cet
article</a>.
</p>
        <p>
Bonne lecture !
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=83e9f0f7-fedf-4e89-a2d6-ed75d0672193" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/4KxuoCGSzbw" height="1" width="1" /></body>
      <title>Nouvel article : Instrumenter et analyser son application avec DotFuscator 4.0</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,83e9f0f7-fedf-4e89-a2d6-ed75d0672193.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/4KxuoCGSzbw/NouvelArticleInstrumenterEtAnalyserSonApplicationAvecDotFuscator40.aspx</link>
      <pubDate>Tue, 11 May 2010 14:41:21 GMT</pubDate>
      <description>&lt;div class="wlWriterHeaderFooter" style="float:none; margin:0px; padding:0px 0px 0px 0px;"&gt;&lt;script type="text/javascript"&gt; tweetmeme_url = 'http://benoitlaut.net/2010/05/11/NouvelArticleInstrumenterEtAnalyserSonApplicationAvecDotFuscator40.aspx'; tweetmeme_source = 'suddenben'; &lt;/script&gt;
&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/NouvelarticleInstrumenteretanalyserson.0_EAA6/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/NouvelarticleInstrumenteretanalyserson.0_EAA6/image_thumb.png" width="568" height="208"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Comme je vous le disais dans &lt;a href="http://benoitlaut.net/2010/05/07/CodeplexEtLanalyseDapplicationsAvecDotFuscator40.aspx" target="_blank"&gt;mon
dernier post&lt;/a&gt;, CodePlex propose d’utiliser les nouveaux outils de DotFuscator 4.0
pour analyser son application. Qui utilise l’application, quelles sont les fonctionnalités
utilisées… DotFuscator nous propose d’injecter du code dans nos assemblies afin d’obtenir
ses éléments de mesure. 
&lt;/p&gt;
&lt;p&gt;
Ce weekend j’ai donc creusé l’utilisation de ces outils et je vous propose de les
découvrir à travers &lt;a href="http://www.techheadbrothers.com/Articles.aspx/instrumenter-analyser-application-dotfuscator-4-0" target="_blank"&gt;cet
article&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Bonne lecture !
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=83e9f0f7-fedf-4e89-a2d6-ed75d0672193" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,83e9f0f7-fedf-4e89-a2d6-ed75d0672193.aspx</comments>
    <feedburner:origLink>http://benoitlaut.net/2010/05/11/NouvelArticleInstrumenterEtAnalyserSonApplicationAvecDotFuscator40.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=4c812c88-633f-41d1-8bd8-c777da2b1814</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,4c812c88-633f-41d1-8bd8-c777da2b1814.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,4c812c88-633f-41d1-8bd8-c777da2b1814.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=4c812c88-633f-41d1-8bd8-c777da2b1814</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://codeplex.codeplex.com/wikipage?title=Project%20Stats#Instrumentation" target="_blank">
            <img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CodeplexetlanalysedapplicationsavecDot.0_10FD2/image_3.png" width="439" height="235" />
          </a>
        </p>
        <p>
Jusqu’ici pour un projet Codeplex nous avions du reporting sur le nombre de téléchargements
ou encore le nombre de visites par période. Cependant ces indicateurs ne permettent
pas de savoir l’utilisation que font les utilisateurs de l’application ou des différentes
fonctionnalités.
</p>
        <p>
Depuis aujourd’hui Codeplex offre la possibilité de suivre l’utilisation de son application. 
</p>
        <p>
En instrumentant son application avec les nouveaux outils de DotFuscator fournis avec
Visual Studio 2010, il est possible de connaitre combien de fois l’application a été
démarrée ou encore de connaitre la fréquence d’utilisation d’une fonctionnalité, en
décorant simplement les méthodes par des attributs. 
</p>
        <p>
Nous connaissons déjà DotFuscator pour les outils d’obfuscation de code qui sont inclus
dans les versions précédentes de Visual Studio. Dans Visual Studio 2010, PreEmptive
nous propose avec la version Community Edition 4.0 de DotFuscator d’autres fonctionnalités
intéressantes, simples à mettre en place et gratuites pour certaines ;)
</p>
        <p>
Pour plus d’information sur DotFuscator voici <a href="http://msdn.microsoft.com/fr-fr/library/ms227240(VS.90).aspx" target="_blank">la
liste détaillées des fonctionnalités de DotFuscator 4.0 par édition</a>.
</p>
        <p>
La société PreEmptive é écrit <a href="http://runtimeintelligence.codeplex.com/" target="_blank">un
tutoriel expliquant comment instrumenter son application et la brancher sur son projet
codeplex</a>.
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=4c812c88-633f-41d1-8bd8-c777da2b1814" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/2ywrzjg-6VI" height="1" width="1" /></body>
      <title>Codeplex et l’analyse d’applications avec DotFuscator 4.0</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,4c812c88-633f-41d1-8bd8-c777da2b1814.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/2ywrzjg-6VI/CodeplexEtLanalyseDapplicationsAvecDotFuscator40.aspx</link>
      <pubDate>Fri, 07 May 2010 17:19:50 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://codeplex.codeplex.com/wikipage?title=Project%20Stats#Instrumentation" target="_blank"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CodeplexetlanalysedapplicationsavecDot.0_10FD2/image_3.png" width="439" height="235"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Jusqu’ici pour un projet Codeplex nous avions du reporting sur le nombre de téléchargements
ou encore le nombre de visites par période. Cependant ces indicateurs ne permettent
pas de savoir l’utilisation que font les utilisateurs de l’application ou des différentes
fonctionnalités.
&lt;/p&gt;
&lt;p&gt;
Depuis aujourd’hui Codeplex offre la possibilité de suivre l’utilisation de son application. 
&lt;/p&gt;
&lt;p&gt;
En instrumentant son application avec les nouveaux outils de DotFuscator fournis avec
Visual Studio 2010, il est possible de connaitre combien de fois l’application a été
démarrée ou encore de connaitre la fréquence d’utilisation d’une fonctionnalité, en
décorant simplement les méthodes par des attributs. 
&lt;/p&gt;
&lt;p&gt;
Nous connaissons déjà DotFuscator pour les outils d’obfuscation de code qui sont inclus
dans les versions précédentes de Visual Studio. Dans Visual Studio 2010, PreEmptive
nous propose avec la version Community Edition 4.0 de DotFuscator d’autres fonctionnalités
intéressantes, simples à mettre en place et gratuites pour certaines ;)
&lt;/p&gt;
&lt;p&gt;
Pour plus d’information sur DotFuscator voici &lt;a href="http://msdn.microsoft.com/fr-fr/library/ms227240(VS.90).aspx" target="_blank"&gt;la
liste détaillées des fonctionnalités de DotFuscator 4.0 par édition&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
La société PreEmptive é écrit &lt;a href="http://runtimeintelligence.codeplex.com/" target="_blank"&gt;un
tutoriel expliquant comment instrumenter son application et la brancher sur son projet
codeplex&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=4c812c88-633f-41d1-8bd8-c777da2b1814" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,4c812c88-633f-41d1-8bd8-c777da2b1814.aspx</comments>
      <category>Visual Studio</category>
    <feedburner:origLink>http://benoitlaut.net/2010/05/07/CodeplexEtLanalyseDapplicationsAvecDotFuscator40.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=1dc8bd2f-b6fa-4cc5-842a-719d817f5845</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,1dc8bd2f-b6fa-4cc5-842a-719d817f5845.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,1dc8bd2f-b6fa-4cc5-842a-719d817f5845.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1dc8bd2f-b6fa-4cc5-842a-719d817f5845</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://bowie.codeplex.com">
            <img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="logo_bowie[1]" border="0" alt="logo_bowie[1]" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/logo_bowie%5B1%5D_3.png" width="177" height="53" />
          </a> Cette
semaine j’ai publié une nouvelle version de <a href="http://bowie.codeplex.com">BOWIE</a>. 
</p>
        <p>
La précédente version était une beta qui fonctionnait pour TFS 2010 RC, celle-ci supporte
TFS 2010 RTM. 
</p>
        <p>
En plus de supporter TFS 2010 RTM, cette nouvelle version corrige les bugs qui avaient
été remontés sur la Beta. Au niveau des nouveautés, vous pouvez maintenant gérer vos
alertes comme dans Visual Studio :
</p>
        <p>
 <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/ProjectSettings_2.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="ProjectSettings" border="0" alt="ProjectSettings" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/ProjectSettings_thumb.png" width="382" height="376" /></a><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/manageProjectAlerts.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="manageProjectAlerts" border="0" alt="manageProjectAlerts" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/manageProjectAlerts_thumb.png" width="443" height="315" /></a></p>
        <p>
BOWIE 2010 fonctionne pour TFS 2008/2010 et Outlook 2007. Il est compatible Outlook
2010. Cependant je travaille actuellement sur une nouvelle version qui fonctionnera
exclusivement sur Outlook 2010 afin de bien s’intégrer au nouveau Ribbon. 
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=1dc8bd2f-b6fa-4cc5-842a-719d817f5845" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/wZ74UI8OUNU" height="1" width="1" /></body>
      <title>BOWIE 2010 pour TFS 2010 RTM est disponible</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,1dc8bd2f-b6fa-4cc5-842a-719d817f5845.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/wZ74UI8OUNU/BOWIE2010PourTFS2010RTMEstDisponible.aspx</link>
      <pubDate>Sun, 02 May 2010 19:25:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://bowie.codeplex.com"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="logo_bowie[1]" border="0" alt="logo_bowie[1]" align="left" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/logo_bowie%5B1%5D_3.png" width="177" height="53"&gt;&lt;/a&gt; Cette
semaine j’ai publié une nouvelle version de &lt;a href="http://bowie.codeplex.com"&gt;BOWIE&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
La précédente version était une beta qui fonctionnait pour TFS 2010 RC, celle-ci supporte
TFS 2010 RTM. 
&lt;/p&gt;
&lt;p&gt;
En plus de supporter TFS 2010 RTM, cette nouvelle version corrige les bugs qui avaient
été remontés sur la Beta. Au niveau des nouveautés, vous pouvez maintenant gérer vos
alertes comme dans Visual Studio :
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/ProjectSettings_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="ProjectSettings" border="0" alt="ProjectSettings" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/ProjectSettings_thumb.png" width="382" height="376"&gt;&lt;/a&gt; &lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/manageProjectAlerts.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="manageProjectAlerts" border="0" alt="manageProjectAlerts" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/LaBewiseDayConferencenestpastermine_12D5C/manageProjectAlerts_thumb.png" width="443" height="315"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
BOWIE 2010 fonctionne pour TFS 2008/2010 et Outlook 2007. Il est compatible Outlook
2010. Cependant je travaille actuellement sur une nouvelle version qui fonctionnera
exclusivement sur Outlook 2010 afin de bien s’intégrer au nouveau Ribbon. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=1dc8bd2f-b6fa-4cc5-842a-719d817f5845" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,1dc8bd2f-b6fa-4cc5-842a-719d817f5845.aspx</comments>
      <category>Outlook Work Items Extension</category>
      <category>TFS</category>
      <category>TFS SDK</category>
      <category>VSTO</category>
    <feedburner:origLink>http://benoitlaut.net/2010/05/02/BOWIE2010PourTFS2010RTMEstDisponible.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=fdc10c9f-c75f-4fef-8ce9-20d973287bb5</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,fdc10c9f-c75f-4fef-8ce9-20d973287bb5.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,fdc10c9f-c75f-4fef-8ce9-20d973287bb5.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fdc10c9f-c75f-4fef-8ce9-20d973287bb5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
La semaine dernière j’ai testé la migration d’un serveur TFS 2010 d’une machine A
vers une machine B et je vous propose de découvrir ici les différentes étapes pour
y arriver.
</p>
        <p>
Cet article aborde la migration des composants suivants :
</p>
        <ul>
          <li>
le serveur TFS 2010 et ses collections, 
</li>
          <li>
le serveur Reporting Services,</li>
          <li>
le site SharePoint</li>
        </ul>
        <h5>1/ Détacher la collection de projets du serveur A
</h5>
        <p>
Lancer Team Foundation Server Administration Console, aller dans Application Tier,
puis dans Team Project Collections.
</p>
        <p>
Sélectionner la collection à détacher, puis dans l’onglet général cliquer sur Detach
collection :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image5.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image5_thumb.png" width="680" height="478" />
          </a>
        </p>
        <p>
Le wizard suivant s’ouvre et nous invite à cliquer sur Next et Verify :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image10.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image10_thumb.png" width="660" height="423" />
          </a>
        </p>
        <p>
Après avoir cliqué sur Verify, si tout ce passe bien, on est invité à cliquer sur
Detach :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/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/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_4.png" width="630" height="406" />
          </a>
        </p>
        <p>
Le warning m’indique 2 choses : 
</p>
        <ul>
          <li>
tout d’abord un message d’avertissement indiquant que la collection était attachée
à une base de données SQL 2008 Enterprise et de prendre cette information en considération
lors de la restauration sur un autre serveur SQL.</li>
          <li>
ensuite un message d’avertissement concernant les services de Builds. Ce message m’indique
que si des builds sont en train de s’exécuter alors elles seront stoppées.</li>
        </ul>
        <p>
Cliquer ensuite sur Detach afin de détacher la collection. Voici le résultat :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image23.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image23_thumb.png" width="640" height="412" />
          </a>
        </p>
        <p>
Le message d’avertissement concernant les services de Build m’indique que le contrôleur
et l’agent ont été désactivés.
</p>
        <h5>2/ Récupérer les bases de données du serveur A
</h5>
        <p>
Pour restaurer le serveur TFS sur une autre machine, nous avons besoin de plusieurs
bases de données. Bien évidemment cela dépend de l’installation qui a été faite. Dans
mon cas j’ai installé le serveur TFS avec le portail Sharepoint et le serveur de rapports.
</p>
        <p>
Depuis SQL Server Management Studio effectuer un backup des bases de données suivantes
:
</p>
        <ul>
          <li>
TFS_DefaultCollection</li>
          <li>
ReportServer</li>
          <li>
ReportServerTmpDB</li>
          <li>
WSS_Content</li>
        </ul>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb.png" width="566" height="507" />
          </a> 
</p>
        <h5>3/ Backup de la clé de cryptage de Reporting Services
</h5>
        <p>
Certaines informations de reporting services, comme les mots de passe ou les chaines
de connexion, sont cryptées en base de données. Lorsque l’on veut migrer un serveur
Reporting Services il faut penser à effectuer un backup de la clé de cryptage afin
de restaurer cette clé sur l’autre serveur.
</p>
        <p>
Ouvrir Reporting Services Configuration Manager, puis aller dans Encryptions Keys
:
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_24.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_11.png" width="688" height="523" />
          </a>
        </p>
        <p>
Cliquer ensuite sur Backup, sélectionner une destination ainsi qu’un mot de passe
:
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_28.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_13.png" width="690" height="421" />
          </a>
        </p>
        <h5>4/ Restauration de la collection de projet sur le serveur B
</h5>
        <p>
Je ne décrirai pas l’installation du serveur TFS sur la machine B, car il suffit de
faire une installation (en mode advanced) de TFS 2010. 
</p>
        <p>
Une fois TFS 2010 installé sur la machine B, restaurer la base de données Tfs_DefaultCollection
sur le serveur SQL sur lequel pointe le nouveau serveur TFS :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_14.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_6.png" width="627" height="565" />
          </a>
        </p>
        <h5>5/ Attacher la collection au serveur TFS
</h5>
        <p>
Ouvrir la console d’administration de TFS, aller dans Application Tier, puis dans
Team Project Collection et cliquer sur Attach Collection :
</p>
        <p>
        </p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_16.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_7.png" width="718" height="481" />
          </a>
        </p>
        <p>
Sélectionner la base de données précédemment restaurer :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_18.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_8.png" width="697" height="518" />
          </a>
        </p>
        <p>
Cliquer ensuite sur Next et Verify :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_20.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_9.png" width="672" height="502" />
          </a>
        </p>
        <p>
Cliquer ensuite sur Attach :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_22.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_10.png" width="672" height="502" />
          </a>
        </p>
        <p>
Comme on peut le voir sur l’image ci-dessus, la collection a bien été rattachée au
nouveau serveur TFS. Il reste à migrer/configurer Reporting Services et Sharepoint.
</p>
        <h5>6/ Restauration de Reporting Services
</h5>
        <p>
Depuis SQL Server Management Studio, restaurer les bases de données Reporting Services
(ReportServer et ReportServerTempDB).
</p>
        <p>
Attention : lors de restauration de la base de données ReportServerTempDB, il faut
lui donner le même nom que celui qu’elle avait sur l’autre serveur SQL. En effet le
nom de cette base de données est écrit en dur dans les procédures stockées de la base
ReportServer.
</p>
        <p>
Ouvrir ensuite Reporting Services Configuration Manager, puis aller dans Encryption
Keys et cliquer sur Restore :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_30.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_14.png" width="716" height="455" />
          </a>
        </p>
        <p>
Dans location, rechercher le fichier .snk précédemment récupérer sur l’autre serveur
de rapport, rentrer le mot de passe puis cliquer sur OK.
</p>
        <h5>7/ Suppression de la base de contenu Sharepoint existante sur le serveur B
</h5>
        <p>
Dans les outils d’administration, lancer l’outil SharePoint 3.0 Central Administration
:
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_32.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_15.png" width="813" height="378" />
          </a>
        </p>
        <p>
Cliquer ensuite sur Application Management, puis dans le menu Sharepoint Web Application
Management cliquer sur Content databases :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_34.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_16.png" width="816" height="207" />
          </a>
        </p>
        <p>
Cliquer sur la base WSS_Content, dans les paramétrages de la base, cocher la case
Remove content database puis cliquer sur OK :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_36.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_17.png" width="813" height="469" />
          </a>
        </p>
        <h5>8/ Restauration de la base de contenu
</h5>
        <p>
Sur le serveur B ouvrir SQL Server Management Studio, puis restaurer la base de données
WSS_Content précédemment “backupée” depuis le serveur A.
</p>
        <p>
Une fois la base de données restaurée, ouvrir SharePoint 3.0 Central Administration.
Aller dans Application Management, puis dans le menu Sharepoint Web Application Management
cliquer sur Content databases. 
</p>
        <p>
Cliquer ensuite sur Add Content Database :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_38.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_18.png" width="811" height="643" />
          </a>
        </p>
        <p>
Remplir les champs de connexion à la base de données précédemment restaurée puis cliquer
sur OK.
</p>
        <h5>9/ Configuration des Team Projects
</h5>
        <p>
Il reste à reconfigurer les portails des Team Project. 
</p>
        <p>
Ouvrir Visual Studio, ouvrir Team Explorer et se connecter au serveur TFS. Clic droit
sur le Team Project, puis dans Team Project Settings, cliquer sur Portal Settings…
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_46.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_22.png" width="636" height="420" />
          </a>
        </p>
        <p>
Dans le wizard qui s’affiche, cocher la case Enable Team Project Portal, puis cliquer
sur Configure URL… 
</p>
        <p>
Sélectionner l’application Sharepoint puis indiquer le chemin d’accès au portail du
projet :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_48.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_23.png" width="604" height="472" />
          </a>
        </p>
        <p>
Cocher la case Reports and dashboards refer to data for this team project, puis cliquer
sur OK :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_50.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_24.png" width="599" height="456" />
          </a> 
</p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <h5>10/ Réparation de la connexion à Sharepoint
</h5>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
        <p>
        </p>
Ouvrir la console d’administration de TFS, puis aller dans Sharepoint Web Applications
:
<p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_40.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_19.png" width="738" height="487" /></a></p><p>
Cliquer sur Repair Connection, puis dans le wizard cliquer sur Repair :
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_42.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_20.png" width="586" height="447" /></a></p><h5>11/Reconstruction du cube
</h5><p>
Dans la console d’administration de TFS, aller dans Reporting puis cliquer sur Start
Rebuild :
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_44.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_21.png" width="575" height="375" /></a></p><h5>12/ Vérification de la migration
</h5><p>
Depuis Team Explorer, vérifier que vous pouvez vous connecter à votre nouveau serveur
TFS, que vous récupérer la collection ainsi que les Team Project. 
</p><p>
Vérifier que le portail est accessible : clic droit sur un Team Project puis cliquer
sur Show Team Portal… 
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_52.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_25.png" width="646" height="459" /></a></p><p>
Si comme moi vous avez encore une erreur lors de l’exécution des rapports, aller sur
le web service du datawarehouse (<a href="http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx">http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx</a>)
:
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_54.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_26.png" width="633" height="518" /></a></p><p>
Exécuter la méthode ProcessWarehouse sans paramètre, puis ProcessAnalysisDatabase
avec en paramètre Full.
</p><p>
Vérifier que les rapports s’exécutent correctement. Si aucun work item n’existe pour
le Team Project, vous risquez d’avoir une erreur lors de l’exécution des rapports.
Vous aurez une exception du style : Default value or value provided for the report
parameter 'WorkItemTypeParam' is not a valid value. (rsInvalidReportParameter). Ceci
est un bug connu (bug remonté sur connect : <a title="http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint" href="http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint">http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint</a>) 
</p><p>
Pour ne pas avoir cette exception, il faut que le Team Project contienne au moins
1 work item. Créer un work item (de type tache par exemple) sur le Team Project puis
attendez environ 10min, ou pour aller plus vite faire un iisreset. 
</p><p>
La migration est maintenant terminée!!
</p><h5>13/ Conclusion
</h5><p>
La migration d’un serveur TFS 2010 sur une autre machine n’est pas bien compliquée.
De plus la nouvelle console d’administration de TFS est très pratique et permet de
gagner pas mal de temps comparer à TFS 2008 et à ces outils en ligne de commande…
La console d’administration de TFS 2010 permet de restaurer une collection simplement
et rapidement. Après, quelques connaissances de Sharepoint et de Reporting sont nécessaires
pour ne pas perdre trop de temps.
</p><p>
TFS Power !
</p><img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=fdc10c9f-c75f-4fef-8ce9-20d973287bb5" /><xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/ZhF8O0xw4lU" height="1" width="1" /></body>
      <title>Guide de migration d’un serveur TFS 2010 sur une autre machine</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,fdc10c9f-c75f-4fef-8ce9-20d973287bb5.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/ZhF8O0xw4lU/GuideDeMigrationDunServeurTFS2010SurUneAutreMachine.aspx</link>
      <pubDate>Sun, 11 Apr 2010 15:29:40 GMT</pubDate>
      <description>&lt;p&gt;
La semaine dernière j’ai testé la migration d’un serveur TFS 2010 d’une machine A
vers une machine B et je vous propose de découvrir ici les différentes étapes pour
y arriver.
&lt;/p&gt;
&lt;p&gt;
Cet article aborde la migration des composants suivants :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
le serveur TFS 2010 et ses collections, 
&lt;/li&gt;
&lt;li&gt;
le serveur Reporting Services,&lt;/li&gt;
&lt;li&gt;
le site SharePoint&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;1/ Détacher la collection de projets du serveur A
&lt;/h5&gt;
&lt;p&gt;
Lancer Team Foundation Server Administration Console, aller dans Application Tier,
puis dans Team Project Collections.
&lt;/p&gt;
&lt;p&gt;
Sélectionner la collection à détacher, puis dans l’onglet général cliquer sur Detach
collection :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image5_thumb.png" width="680" height="478"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Le wizard suivant s’ouvre et nous invite à cliquer sur Next et Verify :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image10_thumb.png" width="660" height="423"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Après avoir cliqué sur Verify, si tout ce passe bien, on est invité à cliquer sur
Detach :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/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/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_4.png" width="630" height="406"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Le warning m’indique 2 choses : 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
tout d’abord un message d’avertissement indiquant que la collection était attachée
à une base de données SQL 2008 Enterprise et de prendre cette information en considération
lors de la restauration sur un autre serveur SQL.&lt;/li&gt;
&lt;li&gt;
ensuite un message d’avertissement concernant les services de Builds. Ce message m’indique
que si des builds sont en train de s’exécuter alors elles seront stoppées.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Cliquer ensuite sur Detach afin de détacher la collection. Voici le résultat :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image23.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image23_thumb.png" width="640" height="412"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Le message d’avertissement concernant les services de Build m’indique que le contrôleur
et l’agent ont été désactivés.
&lt;/p&gt;
&lt;h5&gt;2/ Récupérer les bases de données du serveur A
&lt;/h5&gt;
&lt;p&gt;
Pour restaurer le serveur TFS sur une autre machine, nous avons besoin de plusieurs
bases de données. Bien évidemment cela dépend de l’installation qui a été faite. Dans
mon cas j’ai installé le serveur TFS avec le portail Sharepoint et le serveur de rapports.
&lt;/p&gt;
&lt;p&gt;
Depuis SQL Server Management Studio effectuer un backup des bases de données suivantes
:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
TFS_DefaultCollection&lt;/li&gt;
&lt;li&gt;
ReportServer&lt;/li&gt;
&lt;li&gt;
ReportServerTmpDB&lt;/li&gt;
&lt;li&gt;
WSS_Content&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb.png" width="566" height="507"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;h5&gt;3/ Backup de la clé de cryptage de Reporting Services
&lt;/h5&gt;
&lt;p&gt;
Certaines informations de reporting services, comme les mots de passe ou les chaines
de connexion, sont cryptées en base de données. Lorsque l’on veut migrer un serveur
Reporting Services il faut penser à effectuer un backup de la clé de cryptage afin
de restaurer cette clé sur l’autre serveur.
&lt;/p&gt;
&lt;p&gt;
Ouvrir Reporting Services Configuration Manager, puis aller dans Encryptions Keys
:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_24.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_11.png" width="688" height="523"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer ensuite sur Backup, sélectionner une destination ainsi qu’un mot de passe
:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_28.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_13.png" width="690" height="421"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h5&gt;4/ Restauration de la collection de projet sur le serveur B
&lt;/h5&gt;
&lt;p&gt;
Je ne décrirai pas l’installation du serveur TFS sur la machine B, car il suffit de
faire une installation (en mode advanced) de TFS 2010. 
&lt;/p&gt;
&lt;p&gt;
Une fois TFS 2010 installé sur la machine B, restaurer la base de données Tfs_DefaultCollection
sur le serveur SQL sur lequel pointe le nouveau serveur TFS :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_6.png" width="627" height="565"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h5&gt;5/ Attacher la collection au serveur TFS
&lt;/h5&gt;
&lt;p&gt;
Ouvrir la console d’administration de TFS, aller dans Application Tier, puis dans
Team Project Collection et cliquer sur Attach Collection :
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_7.png" width="718" height="481"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Sélectionner la base de données précédemment restaurer :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_18.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_8.png" width="697" height="518"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer ensuite sur Next et Verify :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_20.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_9.png" width="672" height="502"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer ensuite sur Attach :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_22.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_10.png" width="672" height="502"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Comme on peut le voir sur l’image ci-dessus, la collection a bien été rattachée au
nouveau serveur TFS. Il reste à migrer/configurer Reporting Services et Sharepoint.
&lt;/p&gt;
&lt;h5&gt;6/ Restauration de Reporting Services
&lt;/h5&gt;
&lt;p&gt;
Depuis SQL Server Management Studio, restaurer les bases de données Reporting Services
(ReportServer et ReportServerTempDB).
&lt;/p&gt;
&lt;p&gt;
Attention : lors de restauration de la base de données ReportServerTempDB, il faut
lui donner le même nom que celui qu’elle avait sur l’autre serveur SQL. En effet le
nom de cette base de données est écrit en dur dans les procédures stockées de la base
ReportServer.
&lt;/p&gt;
&lt;p&gt;
Ouvrir ensuite Reporting Services Configuration Manager, puis aller dans Encryption
Keys et cliquer sur Restore :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_30.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_14.png" width="716" height="455"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Dans location, rechercher le fichier .snk précédemment récupérer sur l’autre serveur
de rapport, rentrer le mot de passe puis cliquer sur OK.
&lt;/p&gt;
&lt;h5&gt;7/ Suppression de la base de contenu Sharepoint existante sur le serveur B
&lt;/h5&gt;
&lt;p&gt;
Dans les outils d’administration, lancer l’outil SharePoint 3.0 Central Administration
:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_32.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_15.png" width="813" height="378"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer ensuite sur Application Management, puis dans le menu Sharepoint Web Application
Management cliquer sur Content databases :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_34.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_16.png" width="816" height="207"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer sur la base WSS_Content, dans les paramétrages de la base, cocher la case
Remove content database puis cliquer sur OK :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_36.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_17.png" width="813" height="469"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h5&gt;8/ Restauration de la base de contenu
&lt;/h5&gt;
&lt;p&gt;
Sur le serveur B ouvrir SQL Server Management Studio, puis restaurer la base de données
WSS_Content précédemment “backupée” depuis le serveur A.
&lt;/p&gt;
&lt;p&gt;
Une fois la base de données restaurée, ouvrir SharePoint 3.0 Central Administration.
Aller dans Application Management, puis dans le menu Sharepoint Web Application Management
cliquer sur Content databases. 
&lt;/p&gt;
&lt;p&gt;
Cliquer ensuite sur Add Content Database :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_38.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_18.png" width="811" height="643"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Remplir les champs de connexion à la base de données précédemment restaurée puis cliquer
sur OK.
&lt;/p&gt;
&lt;h5&gt;9/ Configuration des Team Projects
&lt;/h5&gt;
&lt;p&gt;
Il reste à reconfigurer les portails des Team Project. 
&lt;/p&gt;
&lt;p&gt;
Ouvrir Visual Studio, ouvrir Team Explorer et se connecter au serveur TFS. Clic droit
sur le Team Project, puis dans Team Project Settings, cliquer sur Portal Settings…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_46.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_22.png" width="636" height="420"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Dans le wizard qui s’affiche, cocher la case Enable Team Project Portal, puis cliquer
sur Configure URL… 
&lt;/p&gt;
&lt;p&gt;
Sélectionner l’application Sharepoint puis indiquer le chemin d’accès au portail du
projet :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_48.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_23.png" width="604" height="472"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cocher la case Reports and dashboards refer to data for this team project, puis cliquer
sur OK :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_50.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_24.png" width="599" height="456"&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;h5&gt;10/ Réparation de la connexion à Sharepoint
&lt;/h5&gt;
&lt;p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
Ouvrir la console d’administration de TFS, puis aller dans Sharepoint Web Applications
:&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_40.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_19.png" width="738" height="487"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cliquer sur Repair Connection, puis dans le wizard cliquer sur Repair :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_42.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_20.png" width="586" height="447"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h5&gt;11/Reconstruction du cube
&lt;/h5&gt;
&lt;p&gt;
Dans la console d’administration de TFS, aller dans Reporting puis cliquer sur Start
Rebuild :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_44.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_21.png" width="575" height="375"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h5&gt;12/ Vérification de la migration
&lt;/h5&gt;
&lt;p&gt;
Depuis Team Explorer, vérifier que vous pouvez vous connecter à votre nouveau serveur
TFS, que vous récupérer la collection ainsi que les Team Project. 
&lt;/p&gt;
&lt;p&gt;
Vérifier que le portail est accessible : clic droit sur un Team Project puis cliquer
sur Show Team Portal… 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_52.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_25.png" width="646" height="459"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Si comme moi vous avez encore une erreur lors de l’exécution des rapports, aller sur
le web service du datawarehouse (&lt;a href="http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx"&gt;http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx&lt;/a&gt;)
:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_54.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/MigrationduneCollectiondunserveurTFS2010_10302/image_thumb_26.png" width="633" height="518"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Exécuter la méthode ProcessWarehouse sans paramètre, puis ProcessAnalysisDatabase
avec en paramètre Full.
&lt;/p&gt;
&lt;p&gt;
Vérifier que les rapports s’exécutent correctement. Si aucun work item n’existe pour
le Team Project, vous risquez d’avoir une erreur lors de l’exécution des rapports.
Vous aurez une exception du style : Default value or value provided for the report
parameter 'WorkItemTypeParam' is not a valid value. (rsInvalidReportParameter). Ceci
est un bug connu (bug remonté sur connect : &lt;a title="http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint" href="http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint"&gt;http://connect.microsoft.com/VisualStudio/feedback/details/499387/reporting-services-error-on-dashboard-of-sharepoint&lt;/a&gt;) 
&lt;/p&gt;
&lt;p&gt;
Pour ne pas avoir cette exception, il faut que le Team Project contienne au moins
1 work item. Créer un work item (de type tache par exemple) sur le Team Project puis
attendez environ 10min, ou pour aller plus vite faire un iisreset. 
&lt;/p&gt;
&lt;p&gt;
La migration est maintenant terminée!!
&lt;/p&gt;
&lt;h5&gt;13/ Conclusion
&lt;/h5&gt;
&lt;p&gt;
La migration d’un serveur TFS 2010 sur une autre machine n’est pas bien compliquée.
De plus la nouvelle console d’administration de TFS est très pratique et permet de
gagner pas mal de temps comparer à TFS 2008 et à ces outils en ligne de commande…
La console d’administration de TFS 2010 permet de restaurer une collection simplement
et rapidement. Après, quelques connaissances de Sharepoint et de Reporting sont nécessaires
pour ne pas perdre trop de temps.
&lt;/p&gt;
&lt;p&gt;
TFS Power !
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=fdc10c9f-c75f-4fef-8ce9-20d973287bb5" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,fdc10c9f-c75f-4fef-8ce9-20d973287bb5.aspx</comments>
      <category>TFS</category>
    <feedburner:origLink>http://benoitlaut.net/2010/04/11/GuideDeMigrationDunServeurTFS2010SurUneAutreMachine.aspx</feedburner:origLink></item>
    <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" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/MiK-U-wBM6k" height="1" width="1" /></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://feedproxy.google.com/~r/BenoitLaut/~3/MiK-U-wBM6k/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>
    <feedburner:origLink>http://benoitlaut.net/2010/03/29/Probl%c3%a8meAvecLesBuildsDeTFS2010RCApr%c3%a8sMise%c3%80JourDepuisLaBeta2.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://benoitlaut.net/Trackback.aspx?guid=bc21834d-31bd-473a-806d-dc927c3ded19</trackback:ping>
      <pingback:server>http://benoitlaut.net/pingback.aspx</pingback:server>
      <pingback:target>http://benoitlaut.net/PermaLink,guid,bc21834d-31bd-473a-806d-dc927c3ded19.aspx</pingback:target>
      <dc:creator>Benoît Laut</dc:creator>
      <wfw:comment>http://benoitlaut.net/CommentView,guid,bc21834d-31bd-473a-806d-dc927c3ded19.aspx</wfw:comment>
      <wfw:commentRss>http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=bc21834d-31bd-473a-806d-dc927c3ded19</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <table border="0" cellspacing="0" cellpadding="2" width="100%">
          <tbody>
            <tr>
              <td valign="top">
                <object width="480" height="385">
                  <param name="movie" value="http://www.youtube.com/v/KPecQKsvpF8&amp;hl=fr_FR&amp;fs=1&amp;rel=0" />
                  <param name="allowFullScreen" value="true" />
                  <param name="allowscriptaccess" value="always" />
                  <embed src="http://www.youtube.com/v/KPecQKsvpF8&amp;hl=fr_FR&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385">
                  </embed>
                </object>
              </td>
              <td valign="top">
                <a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank">La
Bewise Day Conference</a> approche à grand pas et promet d’être un grand cru. Si vous
n’êtes pas encore inscrit n’hésitez plus et venez découvrir ce que Bewise et Microsoft
vous réservent pour l’année 2010. 
<br /><br />
En ces jours de préparation à cet événement, nous n’hésitons pas à utiliser nos supers
pouvoirs. Découvrez l’ambiance qui règne actuellement dans nos locaux grâce à <a href="http://blog.christophermaneu.fr/" target="_blank">Christopher</a> qui
a réussi à capturer Hyper-D en pleine action.<br />
 </td>
            </tr>
          </tbody>
        </table>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=bc21834d-31bd-473a-806d-dc927c3ded19" />
      <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/BenoitLaut/~4/6L7u-opM1h0" height="1" width="1" /></body>
      <title>BDC 2010 : Les pouvoirs d’Hyper-D</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,bc21834d-31bd-473a-806d-dc927c3ded19.aspx</guid>
      <link>http://feedproxy.google.com/~r/BenoitLaut/~3/6L7u-opM1h0/BDC2010LesPouvoirsDHyperD.aspx</link>
      <pubDate>Fri, 26 Mar 2010 07:55:54 GMT</pubDate>
      <description>&lt;table border="0" cellspacing="0" cellpadding="2" width="100%"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;object width="480" height="385"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/KPecQKsvpF8&amp;amp;hl=fr_FR&amp;amp;fs=1&amp;amp;rel=0"&gt;&gt;
&lt;param name="allowFullScreen" value="true"&gt;&gt;
&lt;param name="allowscriptaccess" value="always"&gt;&gt;&lt;embed src="http://www.youtube.com/v/KPecQKsvpF8&amp;amp;hl=fr_FR&amp;amp;fs=1&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank"&gt;La
Bewise Day Conference&lt;/a&gt; approche à grand pas et promet d’être un grand cru. Si vous
n’êtes pas encore inscrit n’hésitez plus et venez découvrir ce que Bewise et Microsoft
vous réservent pour l’année 2010. 
&lt;br&gt;
&lt;br&gt;
En ces jours de préparation à cet événement, nous n’hésitons pas à utiliser nos supers
pouvoirs. Découvrez l’ambiance qui règne actuellement dans nos locaux grâce à &lt;a href="http://blog.christophermaneu.fr/" target="_blank"&gt;Christopher&lt;/a&gt; qui
a réussi à capturer Hyper-D en pleine action.&lt;br&gt;
&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=bc21834d-31bd-473a-806d-dc927c3ded19" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,bc21834d-31bd-473a-806d-dc927c3ded19.aspx</comments>
      <category>BDC 2010</category>
    <feedburner:origLink>http://benoitlaut.net/2010/03/26/BDC2010LesPouvoirsDHyperD.aspx</feedburner:origLink></item>
  </channel>
</rss>
