<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Ed Squared - ClickOnce</title>
    <link>http://www.edsquared.com/</link>
    <description>The Ramblings of Two Microsoft .NET Developers, TFS, and Visual Studio ALM Guys --- "Yes, we are both named Ed."</description>
    <language>en-us</language>
    <copyright>Ed Blankenship</copyright>
    <lastBuildDate>Thu, 27 Oct 2011 15:55:01 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 12.1.14.2</generator>
    <managingEditor>edblankenship@gmail.com</managingEditor>
    <webMaster>edblankenship@gmail.com</webMaster>
    <item>
      <trackback:ping>http://www.edsquared.com/Trackback.aspx?guid=50669c01-bce0-47fa-b936-e71b6698852c</trackback:ping>
      <pingback:server>http://www.edsquared.com/pingback.aspx</pingback:server>
      <pingback:target>http://www.edsquared.com/PermaLink,guid,50669c01-bce0-47fa-b936-e71b6698852c.aspx</pingback:target>
      <dc:creator>Ed Blankenship (EdSquared.com)</dc:creator>
      <georss:point>32.85 96.85</georss:point>
      <wfw:comment>http://www.edsquared.com/CommentView,guid,50669c01-bce0-47fa-b936-e71b6698852c.aspx</wfw:comment>
      <wfw:commentRss>http://www.edsquared.com/SyndicationService.asmx/GetEntryCommentsRss?guid=50669c01-bce0-47fa-b936-e71b6698852c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I wanted to wring my hair on this one… but it was actually rather simple to get solved. 
I’m helping a customer this week upgrading their server to TFS 2010 from TFS 2008. 
They had TFS 2008 builds compiling &amp; publishing Visual Studio 2008 solutions &amp;
builds.  When you upgrade to TFS 2010, those existing build definitions will
end up using the <font face="Consolas">UpgradeTemplate.xaml</font> build process template
in TFS 2010.  Not a problem there.  This customer was not able to upgrade
their solutions &amp; projects immediately to <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwww.microsoft.com%2fvisualstudio%2f" target="_blank">Visual
Studio 2010</a> in tandem with the TFS 2010 upgrade.  That should normally not
be a problem but having done a few of these upgrades, I know that I usually need to
set out some time just to get the existing builds working again.  There’s always
something wrong. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.edsquared.com/content/binary/Windows-Live-Writer/Deplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829/wlEmoticon-smile_2.png" /> 
Never huge but enough to irritate you after an upgrade.
</p>
        <p>
We went through a few hurdles to get those solutions &amp; projects compiling and
then we moved on to the deployment builds.  They seemed to just work which was
great!  In their legacy <font face="Consolas">TFSBuild.proj</font> files, they
had an entry in the <font face="Consolas">AfterCompile</font> MSBuild target essentially
like this:
</p>
        <blockquote>
          <pre class="csharpcode">
            <span class="kwrd">&lt;</span>
            <span class="html">MSBuild</span> <span class="attr">Projects</span><span class="kwrd">="$(SolutionRoot)\Branch\ClickOnceProject.csproj"</span> <br /><span class="attr">Properties</span><span class="kwrd">="PublishDir=\\FILESERVER\ClickOncePublishPath\;ApplicationVersion=$(VersionNumber);"</span><br /><span class="attr">Targets</span><span class="kwrd">="Publish" </span><span class="kwrd">/&gt;</span></pre>
        </blockquote>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
It was great until we went to go actually fire up the app… CRASH!  It is complaining
in the ClickOnce deployment log that the deployment manifest wasn’t semantically valid
and that the deployment manifest was missing the <font face="Consolas"><a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fdd996957.aspx" target="_blank">&lt;compatibleFrameworks&gt;</a></font> node. 
Here’s the full (redcated) log: (<strong><em>emphasis</em></strong> mine)
</p>
        <blockquote>
          <p>
            <font face="Consolas">PLATFORM VERSION INFO<br />
    Windows            
: 6.1.7601.65536 (Win32NT)<br />
    Common Language Runtime     : 4.0.30319.239<br />
    System.Deployment.dll        
: 4.0.30319.1 (RTMRel.030319-0100)<br />
    clr.dll            
: 4.0.30319.239 (RTMGDR.030319-2300)<br />
    dfdll.dll            
: 4.0.30319.1 (RTMRel.030319-0100)<br />
    dfshim.dll            
: 4.0.31106.0 (Main.031106-0000)</font>
          </p>
          <p>
            <font face="Consolas">SOURCES<br />
    Deployment url           
: </font>
            <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application">
              <font face="Consolas">http://webserver/ClickOnceProject.application</font>
            </a>
            <br />
            <font face="Consolas">                       
Server        : Microsoft-IIS/6.0<br />
                       
X-Powered-By    : ASP.NET<br />
    Application url           
: </font>
            <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwebserver%2fApplication%2520Files%2fClickOnceProject_1_1_1_1%2fClickOnceProject.exe.manifest">
              <font face="Consolas">http://webserver/Application%20Files/ClickOnceProject_1_1_1_1/ClickOnceProject.exe.manifest</font>
            </a>
            <br />
            <font face="Consolas">                       
Server        : Microsoft-IIS/6.0<br />
                       
X-Powered-By    : ASP.NET</font>
          </p>
          <p>
            <font face="Consolas">IDENTITIES<br />
    Deployment Identity        :
PolicyManagement.application, Version=1.11.1026.3, Culture=neutral, PublicKeyToken=3801d6f74f2e8cd7,
processorArchitecture=x86<br />
    Application Identity       
: PolicyManagement.exe, Version=1.11.1026.3, Culture=neutral, PublicKeyToken=3801d6f74f2e8cd7,
processorArchitecture=x86, type=win32</font>
          </p>
          <p>
            <font face="Consolas">APPLICATION SUMMARY<br />
    * Online only application.<br />
    * Trust url parameter is set.<br />
ERROR SUMMARY<br />
    Below is a summary of the errors, details of these errors are listed
later in the log.<br />
    * Activation of <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application"><font face="Consolas">http://webserver/ClickOnceProject.application</font></a> </font>
            <font face="Consolas">resulted
in exception. Following failure messages were detected:<br /><strong><em>        + Deployment manifest is not
semantically valid.<br />
        + Deployment manifest is missing &lt;compatibleFrameworks&gt;.</em></strong></font>
          </p>
          <p>
            <font face="Consolas">COMPONENT STORE TRANSACTION FAILURE SUMMARY<br />
    No transaction error was detected.</font>
          </p>
          <p>
            <font face="Consolas">WARNINGS<br />
    There were no warnings during this operation.</font>
          </p>
          <p>
            <font face="Consolas">OPERATION PROGRESS STATUS<br />
    * [10/26/2011 1:49:41 PM] : Activation of </font>
            <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application">
              <font face="Consolas">http://webserver/ClickOnceProject.application</font>
            </a>
            <font face="Consolas"> has
started.<br />
    * [10/26/2011 1:49:42 PM] : Processing of deployment manifest has
successfully completed.<br />
    * [10/26/2011 1:49:42 PM] : Installation of the application has
started.<br />
    * [10/26/2011 1:49:42 PM] : Processing of application manifest
has successfully completed.</font>
          </p>
          <p>
            <font face="Consolas">ERROR DETAILS<br />
    Following errors were detected during this operation.<br />
    * [10/26/2011 1:49:43 PM] System.Deployment.Application.InvalidDeploymentException
(ManifestSemanticValidation)<br />
        - Deployment manifest is not semantically
valid.<br />
        - Source: System.Deployment<br />
        - Stack trace:<br />
            at System.Deployment.Application.PlatformDetector.VerifyPlatformDependencies(AssemblyManifest
appManifest, AssemblyManifest deployManifest, String tempDir)<br />
            at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState
subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory&amp; downloadTemp)<br />
            at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState&amp;
subState, ActivationDescription actDesc)<br />
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri
activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension,
BrowserSettings browserSettings, String&amp; errorPageUrl)<br />
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object
state)<br />
        --- Inner Exception ---<br />
        System.Deployment.Application.InvalidDeploymentException
(InvalidManifest)<br />
        - <strong><em>Deployment manifest is missing
&lt;compatibleFrameworks&gt;.</em></strong><br />
        - Source: 
<br />
        - Stack trace:</font>
          </p>
          <p>
            <br />
            <font face="Consolas">COMPONENT STORE TRANSACTION DETAILS<br />
    No transaction information is available.</font>
          </p>
        </blockquote>
        <p>
Now what I remember is that the <font face="Consolas"><a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fdd996957.aspx" target="_blank">&lt;compatibleFrameworks&gt;</a></font> node
was actually introduced in the deployment manifests for .NET / ClickOnce 4.0 in Visual
Studio 2010 and we shouldn’t be expecting them for Visual Studio 2008 ClickOnce projects. 
Sounds like the build process is not picking up the right version.  In the TFS
2010 version of the <font face="Consolas">TeamFoundationBuild.targets</font> file,
it handles compilation correctly by setting the appropriate MSBuild tools version
number.  Why wasn’t it picking that up for our publish?
</p>
        <p>
Oh yeah… since TFS 2010 build had to specify it for the legacy <font face="Consolas">UpgradeTemplate.xaml</font> and <font face="Consolas">TeamFoundationBuild.targets</font> files,
we have to do the same thing.  Duh.  It ended up being an easy fix and we
just updated that portion of the legacy <font face="Consolas">TFSBuild.proj</font> build
script to explicitly set the MSBuild tools version and pass in the framework version
as well for the ClickOnce project.
</p>
        <blockquote>
          <pre class="csharpcode">
            <span class="kwrd">&lt;</span>
            <span class="html">MSBuild</span> <strong><span class="attr">ToolsVersion</span><span class="kwrd">="3.5"</span></strong> <span class="attr">Projects</span><span class="kwrd">="$(SolutionRoot)\Branch\ClickOnceProject.csproj"<br /></span><span class="attr"> Properties</span><span class="kwrd">="<strong>ClrVersion=2.0.50727.0</strong>;PublishDir=\\FILESERVER\ClickOncePublishPath\;ApplicationVersion=$(VersionNumber);"<br /></span><span class="attr"> Targets</span><span class="kwrd">="Publish"</span> <span class="kwrd">=""</span><span class="kwrd">/&gt;</span></pre>
        </blockquote>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
BTW – you can do this in the new Windows Workflow-based build process templates as
well but instead you would use the MSBuild workflow activity.
</p>
        <p>
          <a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;url=http%3a%2f%2fwww.edsquared.com%2fcontent%2fbinary%2fWindows-Live-Writer%2fDeplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829%2fimage_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.edsquared.com/content/binary/Windows-Live-Writer/Deplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829/image_thumb.png" width="300" height="232" />
          </a>
        </p>
        <p>
However, I would highly suggest upgrading to Visual Studio 2010 when you get a chance
since it will handle ClickOnce projects that target .NET 2.0, .NET 3.0, .NET 3.5,
and .NET 4.0 seamlessly.
</p>
        <p>
Now that all of the legacy TFS 2008 builds are working in TFS 2010, it’s time to start
helping my current customer get their Visual Studio 2008 solutions &amp; projects
upgraded to Visual Studio 2010 and leverage the new Windows Workflow-based build process
template!
</p>
        <p>
 
</p>
        <p>
          <strong>Ed Blankenship</strong>
        </p>
        <p>
          <em>Many thanks to Josh Winfree for helping out with the discover of this one!</em>
        </p>
        <img width="0" height="0" src="http://www.edsquared.com/aggbug.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c" />
        <br />
        <hr />
Brought to you by Ed Blankenship and Ed Kisinger at EdSquared.com</body>
      <title>Deploying Visual Studio 2008 ClickOnce Projects in TFS 2010 Build</title>
      <guid isPermaLink="false">http://www.edsquared.com/PermaLink,guid,50669c01-bce0-47fa-b936-e71b6698852c.aspx</guid>
      <link>http://www.edsquared.com/2011/10/27/Deploying+Visual+Studio+2008+ClickOnce+Projects+In+TFS+2010+Build.aspx</link>
      <pubDate>Thu, 27 Oct 2011 15:55:01 GMT</pubDate>
      <description>&lt;p&gt;
I wanted to wring my hair on this one… but it was actually rather simple to get solved.&amp;nbsp;
I’m helping a customer this week upgrading their server to TFS 2010 from TFS 2008.&amp;nbsp;
They had TFS 2008 builds compiling &amp;amp; publishing Visual Studio 2008 solutions &amp;amp;
builds.&amp;nbsp; When you upgrade to TFS 2010, those existing build definitions will
end up using the &lt;font face="Consolas"&gt;UpgradeTemplate.xaml&lt;/font&gt; build process template
in TFS 2010.&amp;nbsp; Not a problem there.&amp;nbsp; This customer was not able to upgrade
their solutions &amp;amp; projects immediately to &lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwww.microsoft.com%2fvisualstudio%2f" target="_blank"&gt;Visual
Studio 2010&lt;/a&gt; in tandem with the TFS 2010 upgrade.&amp;nbsp; That should normally not
be a problem but having done a few of these upgrades, I know that I usually need to
set out some time just to get the existing builds working again.&amp;nbsp; There’s always
something wrong. &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.edsquared.com/content/binary/Windows-Live-Writer/Deplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829/wlEmoticon-smile_2.png"&gt;&amp;nbsp;
Never huge but enough to irritate you after an upgrade.
&lt;/p&gt;
&lt;p&gt;
We went through a few hurdles to get those solutions &amp;amp; projects compiling and
then we moved on to the deployment builds.&amp;nbsp; They seemed to just work which was
great!&amp;nbsp; In their legacy &lt;font face="Consolas"&gt;TFSBuild.proj&lt;/font&gt; files, they
had an entry in the &lt;font face="Consolas"&gt;AfterCompile&lt;/font&gt; MSBuild target essentially
like this:
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MSBuild&lt;/span&gt;&amp;nbsp;&lt;span class="attr"&gt;Projects&lt;/span&gt;&lt;span class="kwrd"&gt;="$(SolutionRoot)\Branch\ClickOnceProject.csproj"&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;span class="attr"&gt;Properties&lt;/span&gt;&lt;span class="kwrd"&gt;="PublishDir=\\FILESERVER\ClickOncePublishPath\;ApplicationVersion=$(VersionNumber);"&lt;/span&gt; 
&lt;br&gt;
&lt;span class="attr"&gt;Targets&lt;/span&gt;&lt;span class="kwrd"&gt;="Publish" &lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
It was great until we went to go actually fire up the app… CRASH!&amp;nbsp; It is complaining
in the ClickOnce deployment log that the deployment manifest wasn’t semantically valid
and that the deployment manifest was missing the &lt;font face="Consolas"&gt;&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fdd996957.aspx" target="_blank"&gt;&amp;lt;compatibleFrameworks&amp;gt;&lt;/a&gt;&lt;/font&gt; node.&amp;nbsp;
Here’s the full (redcated) log: (&lt;strong&gt;&lt;em&gt;emphasis&lt;/em&gt;&lt;/strong&gt; mine)
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;font face="Consolas"&gt;PLATFORM VERSION INFO&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: 6.1.7601.65536 (Win32NT)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Common Language Runtime&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4.0.30319.239&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Deployment.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: 4.0.30319.1 (RTMRel.030319-0100)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; clr.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: 4.0.30319.239 (RTMGDR.030319-2300)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; dfdll.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: 4.0.30319.1 (RTMRel.030319-0100)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; dfshim.dll&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: 4.0.31106.0 (Main.031106-0000)&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;SOURCES&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Deployment url&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: &lt;/font&gt;&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application"&gt;&lt;font face="Consolas"&gt;http://webserver/ClickOnceProject.application&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Microsoft-IIS/6.0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
X-Powered-By&amp;nbsp;&amp;nbsp;&amp;nbsp; : ASP.NET&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Application url&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: &lt;/font&gt;&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwebserver%2fApplication%2520Files%2fClickOnceProject_1_1_1_1%2fClickOnceProject.exe.manifest"&gt;&lt;font face="Consolas"&gt;http://webserver/Application%20Files/ClickOnceProject_1_1_1_1/ClickOnceProject.exe.manifest&lt;/font&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font face="Consolas"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Server&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : Microsoft-IIS/6.0&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
X-Powered-By&amp;nbsp;&amp;nbsp;&amp;nbsp; : ASP.NET&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;IDENTITIES&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Deployment Identity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :
PolicyManagement.application, Version=1.11.1026.3, Culture=neutral, PublicKeyToken=3801d6f74f2e8cd7,
processorArchitecture=x86&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Application Identity&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
: PolicyManagement.exe, Version=1.11.1026.3, Culture=neutral, PublicKeyToken=3801d6f74f2e8cd7,
processorArchitecture=x86, type=win32&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;APPLICATION SUMMARY&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * Online only application.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * Trust url parameter is set.&lt;br&gt;
ERROR SUMMARY&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Below is a summary of the errors, details of these errors are listed
later in the log.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * Activation of &lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application"&gt;&lt;font face="Consolas"&gt;http://webserver/ClickOnceProject.application&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/font&gt;&lt;font face="Consolas"&gt;resulted
in exception. Following failure messages were detected:&lt;br&gt;
&lt;strong&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Deployment manifest is not
semantically valid.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Deployment manifest is missing &amp;lt;compatibleFrameworks&amp;gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;COMPONENT STORE TRANSACTION FAILURE SUMMARY&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; No transaction error was detected.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;WARNINGS&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; There were no warnings during this operation.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;OPERATION PROGRESS STATUS&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * [10/26/2011 1:49:41 PM] : Activation of &lt;/font&gt;&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwebserver%2fClickOnceProject.application"&gt;&lt;font face="Consolas"&gt;http://webserver/ClickOnceProject.application&lt;/font&gt;&lt;/a&gt;&lt;font face="Consolas"&gt; has
started.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * [10/26/2011 1:49:42 PM] : Processing of deployment manifest has
successfully completed.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * [10/26/2011 1:49:42 PM] : Installation of the application has
started.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * [10/26/2011 1:49:42 PM] : Processing of application manifest
has successfully completed.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Consolas"&gt;ERROR DETAILS&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Following errors were detected during this operation.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; * [10/26/2011 1:49:43 PM] System.Deployment.Application.InvalidDeploymentException
(ManifestSemanticValidation)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Deployment manifest is not semantically
valid.&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Source: System.Deployment&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Stack trace:&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Deployment.Application.PlatformDetector.VerifyPlatformDependencies(AssemblyManifest
appManifest, AssemblyManifest deployManifest, String tempDir)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState
subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory&amp;amp; downloadTemp)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState&amp;amp;
subState, ActivationDescription actDesc)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri
activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension,
BrowserSettings browserSettings, String&amp;amp; errorPageUrl)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object
state)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --- Inner Exception ---&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Deployment.Application.InvalidDeploymentException
(InvalidManifest)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - &lt;strong&gt;&lt;em&gt;Deployment manifest is missing
&amp;lt;compatibleFrameworks&amp;gt;.&lt;/em&gt;&lt;/strong&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Source: 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Stack trace:&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;font face="Consolas"&gt;COMPONENT STORE TRANSACTION DETAILS&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; No transaction information is available.&lt;/font&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Now what I remember is that the &lt;font face="Consolas"&gt;&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2fdd996957.aspx" target="_blank"&gt;&amp;lt;compatibleFrameworks&amp;gt;&lt;/a&gt;&lt;/font&gt; node
was actually introduced in the deployment manifests for .NET / ClickOnce 4.0 in Visual
Studio 2010 and we shouldn’t be expecting them for Visual Studio 2008 ClickOnce projects.&amp;nbsp;
Sounds like the build process is not picking up the right version.&amp;nbsp; In the TFS
2010 version of the &lt;font face="Consolas"&gt;TeamFoundationBuild.targets&lt;/font&gt; file,
it handles compilation correctly by setting the appropriate MSBuild tools version
number.&amp;nbsp; Why wasn’t it picking that up for our publish?
&lt;/p&gt;
&lt;p&gt;
Oh yeah… since TFS 2010 build had to specify it for the legacy &lt;font face="Consolas"&gt;UpgradeTemplate.xaml&lt;/font&gt; and &lt;font face="Consolas"&gt;TeamFoundationBuild.targets&lt;/font&gt; files,
we have to do the same thing.&amp;nbsp; Duh.&amp;nbsp; It ended up being an easy fix and we
just updated that portion of the legacy &lt;font face="Consolas"&gt;TFSBuild.proj&lt;/font&gt; build
script to explicitly set the MSBuild tools version and pass in the framework version
as well for the ClickOnce project.
&lt;/p&gt;
&lt;blockquote&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;MSBuild&lt;/span&gt;&amp;nbsp;&lt;strong&gt;&lt;span class="attr"&gt;ToolsVersion&lt;/span&gt;&lt;span class="kwrd"&gt;="3.5"&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&lt;span class="attr"&gt;Projects&lt;/span&gt;&lt;span class="kwrd"&gt;="$(SolutionRoot)\Branch\ClickOnceProject.csproj"&lt;br&gt;
&lt;/span&gt;&lt;span class="attr"&gt; Properties&lt;/span&gt;&lt;span class="kwrd"&gt;="&lt;strong&gt;ClrVersion=2.0.50727.0&lt;/strong&gt;;PublishDir=\\FILESERVER\ClickOncePublishPath\;ApplicationVersion=$(VersionNumber);"&lt;br&gt;
&lt;/span&gt;&lt;span class="attr"&gt; Targets&lt;/span&gt;&lt;span class="kwrd"&gt;="Publish"&lt;/span&gt;&amp;nbsp;&lt;span class="kwrd"&gt;=""&lt;/span&gt;&lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;p&gt;
BTW – you can do this in the new Windows Workflow-based build process templates as
well but instead you would use the MSBuild workflow activity.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.edsquared.com/ct.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c&amp;amp;url=http%3a%2f%2fwww.edsquared.com%2fcontent%2fbinary%2fWindows-Live-Writer%2fDeplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829%2fimage_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.edsquared.com/content/binary/Windows-Live-Writer/Deplo.5-ClickOnce-Apps-in-TFS-2010-Build_6829/image_thumb.png" width="300" height="232"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
However, I would highly suggest upgrading to Visual Studio 2010 when you get a chance
since it will handle ClickOnce projects that target .NET 2.0, .NET 3.0, .NET 3.5,
and .NET 4.0 seamlessly.
&lt;/p&gt;
&lt;p&gt;
Now that all of the legacy TFS 2008 builds are working in TFS 2010, it’s time to start
helping my current customer get their Visual Studio 2008 solutions &amp;amp; projects
upgraded to Visual Studio 2010 and leverage the new Windows Workflow-based build process
template!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Ed Blankenship&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Many thanks to Josh Winfree for helping out with the discover of this one!&lt;/em&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.edsquared.com/aggbug.ashx?id=50669c01-bce0-47fa-b936-e71b6698852c" /&gt;
&lt;br /&gt;
&lt;hr /&gt;Brought to you by Ed Blankenship and Ed Kisinger at EdSquared.com</description>
      <comments>http://www.edsquared.com/CommentView,guid,50669c01-bce0-47fa-b936-e71b6698852c.aspx</comments>
      <category>ClickOnce</category>
      <category>TFS</category>
      <category>VSTS</category>
      <category>VSTS Building &amp; Releasing</category>
    </item>
  </channel>
</rss>