<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Sayed Ibrahim Hashimi - MSBuild, Web Deploy (MSDeploy), ASP.NET - Deployment</title>
    <link>http://sedodream.com/</link>
    <description>MSBuild, C#, Visual Studio and more</description>
    <language>en-us</language>
    <copyright>Sayed Ibrahim Hashimi</copyright>
    <lastBuildDate>Fri, 15 Jun 2012 19:30:40 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>sayed.hashimi@gmail.com</managingEditor>
    <webMaster>sayed.hashimi@gmail.com</webMaster>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=055c7ccf-e6a9-41e7-bcb8-db3bc65194f2</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,055c7ccf-e6a9-41e7-bcb8-db3bc65194f2.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,055c7ccf-e6a9-41e7-bcb8-db3bc65194f2.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=055c7ccf-e6a9-41e7-bcb8-db3bc65194f2</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I have written a few posts recently describing out updated web publish experience.
These new experience is available for both Visual Studio 2010 as well as Visual Studio
2012 RC. You can use the links below to download these updates in the Azure SDK download.
Below are links for both versions.
</p>
        <ul>
          <li>
            <a href="http://go.microsoft.com/fwlink/?LinkID=254269&amp;clcid=0x409">Windows Azure
SDK for Visual Studio 2010</a>
          </li>
          <li>
            <a href="http://go.microsoft.com/fwlink/?LinkId=254364&amp;clcid=0x409">Windows Azure
SDK for Visual Studio 2012 RC</a>
          </li>
        </ul>
        <p>
The Web Publish experience is chained into VS 2012 RC so if you have installed VS
2012 RC with the Web features then you already have these features.
</p>
        <p>
Thanks, 
<br />
Sayed Ibrahim Hashimi <a href="https://twitter.com/#!/sayedihashimi">@SayedIHashimi</a></p>
      </body>
      <title>Downloading the Visual Studio Web Publish Updates</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,055c7ccf-e6a9-41e7-bcb8-db3bc65194f2.aspx</guid>
      <link>http://sedodream.com/2012/06/15/DownloadingTheVisualStudioWebPublishUpdates.aspx</link>
      <pubDate>Fri, 15 Jun 2012 19:30:40 GMT</pubDate>
      <description>&lt;p&gt;
I have written a few posts recently describing out updated web publish experience.
These new experience is available for both Visual Studio 2010 as well as Visual Studio
2012 RC. You can use the links below to download these updates in the Azure SDK download.
Below are links for both versions.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkID=254269&amp;amp;clcid=0x409"&gt;Windows Azure
SDK for Visual Studio 2010&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://go.microsoft.com/fwlink/?LinkId=254364&amp;amp;clcid=0x409"&gt;Windows Azure
SDK for Visual Studio 2012 RC&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The Web Publish experience is chained into VS 2012 RC so if you have installed VS
2012 RC with the Web features then you already have these features.
&lt;/p&gt;
&lt;p&gt;
Thanks, 
&lt;br /&gt;
Sayed Ibrahim Hashimi &lt;a href="https://twitter.com/#!/sayedihashimi"&gt;@SayedIHashimi&lt;/a&gt;
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,055c7ccf-e6a9-41e7-bcb8-db3bc65194f2.aspx</comments>
      <category>asp.net</category>
      <category>Deployment</category>
      <category>Visual Studio</category>
      <category>Visual Studio 11</category>
      <category>Visual Studio 2010</category>
      <category>web</category>
      <category>Web Deployment Tool</category>
      <category>Web Publishing Pipeline</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=487f5f26-2d6f-4deb-9d5d-24b500cab3ff</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,487f5f26-2d6f-4deb-9d5d-24b500cab3ff.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,487f5f26-2d6f-4deb-9d5d-24b500cab3ff.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=487f5f26-2d6f-4deb-9d5d-24b500cab3ff</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>How to compress CSS/JavaScript before publish/package</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,487f5f26-2d6f-4deb-9d5d-24b500cab3ff.aspx</guid>
      <link>http://sedodream.com/2011/02/25/HowToCompressCSSJavaScriptBeforePublishpackage.aspx</link>
      <pubDate>Fri, 25 Feb 2011 05:21:44 GMT</pubDate>
      <description>&lt;p&gt;
Today I saw a post on stackoverflow.com asking &lt;a href="http://stackoverflow.com/q/5043504/105999" target="_blank"&gt;Using
Microsoft AJAX Minifier with Visual Studio 2010 1-click publish&lt;/a&gt;. This is a response
to that question. The Web Publishing Pipeline is pretty extensive so it is easy for
us to hook in to it in order to perform operation such as these. One of those extension
points, as we’ve blogged about before, is creating a .wpp.targets file. If you create
a file in the same directory of your project with the name {ProjectName}.wpp.targets
then that file will automatically be imported and included in the build/publish process.
This makes it easy to edit your build/publish process without always having to edit
the project file itself. I will use this technique to demonstrate how to compress
the CSS &amp; JavaScript files a project contains before it is published/packaged.
&lt;/p&gt;
&lt;p&gt;
Eventhough the question specifically states Microsoft AJAX Minifier I decided to use
the compressor contained in Packer.NET (link in resources section). I did this because
when I looked at the MSBuild task for the AJAX Minifier it didn’t look like I could
control the output location of the compressed files. Instead it would simply write
to the same folder with an extension like .min.cs or .min.js. In any case, when you
publish/package your Web Application Project (WAP) the files are copied to a temporary
location before the publish/package occurs. The default value for this location is
obj\{Configuration}\Package\PackageTmp\ where {Configuration} is the build configuration
that you are currently using for your WAP. So what we need to do is to allow the WPP
to copy all the files to that location and then after that we can compress the CSS
and JavaScript that goes in that folder. The target which copies the files to that
location is &lt;strong&gt;CopyAllFilesToSingleFolderForPackage&lt;/strong&gt;. (To learn more
about these targets take a look at the file %Program Files (x86)%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets.)
To make our target run after this target we can use the MSBuild AfterTargets attribute.
The project that I created to demonstrate this is called CompressBeforePublish, because
of that I create a new file named CompressBeforePublish.wpp.targets to contain my
changes.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;
&lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt;
&lt;UsingTask taskname="SmallSharpTools.Packer.MSBuild.Packer" assemblyfile="$(MSBuildThisFileDirectory)..\Contrib\SmallSharpTools.Packer\SmallSharpTools.Packer.dll" /&gt;
&lt;!-- This target will run after the files are copied to PackageTmp folder --&gt;
&lt;Target name="CompressJsAndCss" aftertargets="CopyAllFilesToSingleFolderForPackage"&gt;
&lt;!-- Discover files to compress --&gt;
&lt;ItemGroup&gt;
&lt;_JavaScriptFiles include="$(_PackageTempDir)\Scripts\**\*.js" /&gt;
&lt;_CssFiles include="$(_PackageTempDir)\Content\**\*.css" /&gt;
&lt;/ItemGroup&gt;
&lt;Message text="Compressing JavaScript files" importance="high" /&gt;
&lt;!-- 
      Compress the JavaScript files. 
      Not the usage of %(JavaScript.Identity which causes this task to run once per
      .js file in the JavaScriptFiles item list.
      For more info on batching: http://sedotech.com/resources#Batching
    --&gt;
&lt;Packer inputfiles="%(_JavaScriptFiles.Identity)" outputfilename="@(_JavaScriptFiles-&gt;'$(_PackageTempDir)\Scripts\%(RecursiveDir)%(Filename)%(Extension)')" mode="JSMin" verbose="false" condition=" '@(_JavaScriptFiles)' != ''" /&gt;
&lt;Message text="Compressing CSS files" importance="high" /&gt;
&lt;Packer inputfiles="%(_CssFiles.Identity)" outputfilename="@(_CssFiles-&gt;'$(_PackageTempDir)\Content\%(RecursiveDir)%(Filename)%(Extension)')" mode="CSSMin" verbose="false" condition=" '@(_CssFiles)' != '' " /&gt;
&lt;/Target&gt;
&lt;/Project&gt;
&lt;/pre&gt;
&lt;p&gt;
Here I’ve created one target, CompressJsAndCss, and I have included AfterTargets=”CopyAllFilesToSingleFolderForPackage”
which causes it to be executed after CopyAllFilesToSingleFolderForPackage. Inside
this target I do two things, gather the files which need to be compressed and then
I compress them.
&lt;/p&gt;
&lt;h5&gt;1. Gather files to be compressed
&lt;/h5&gt;
&lt;pre class="brush: xml;"&gt;
&lt;ItemGroup&gt;
&lt;_JavaScriptFiles include="$(_PackageTempDir)\Scripts\**\*.js" /&gt;
&lt;_CssFiles include="$(_PackageTempDir)\Content\**\*.css" /&gt;
&lt;/ItemGroup&gt;
&lt;/pre&gt;
&lt;p&gt;
Here I use an item list for both JavaScript files as well as CSS files. Notice that
I am using the _PackageTempDir property to pickup .js &amp; .css files inside the temporary
folder where the files are written to be packaged. The reason that I’m doing that
instead of picking up source files is because my build may be outputting other .js
&amp; .css files and which are going to be published. &lt;em&gt;Note: since the property _PackageTempDir
starts with an underscore it is not guaranteed to behave (or even exist) in future
versions&lt;/em&gt;.
&lt;/p&gt;
&lt;h5&gt;2. Compress files
&lt;/h5&gt;
&lt;p&gt;
I use the Packer task to compress the .js and .css files. For both sets of files the
usage is pretty similar so I will only look at the first usage.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;
&lt;Packer inputfiles="%(_JavaScriptFiles.Identity)" outputfilename="@(_JavaScriptFiles-&gt;'$(_PackageTempDir)\Scripts\%(RecursiveDir)%(Filename)%(Extension)')" mode="JSMin" verbose="false" condition=" '@(_JavaScriptFiles)' != ''" /&gt;
&lt;/pre&gt;
&lt;p&gt;
Here the task is fed all the .js files for compression. Take a note how I passed the
files into the task using, %(_JavaScriptFiles.Identity), in this case what that does
is to cause this task to be executed once per .js file. &lt;em&gt;The %(abc.def) syntax
invokes batching, if you are not familiar with batching please see below.&lt;/em&gt; For
the value of the output file I use the _PackageTempDir property again. In this case
since the item already resides there I could have simplified that to be @(_JavaScriptFiles-&gt;’%(FullPath)’)
but I thought you might find that expression helpful in the case that you are compressing
files which do not already exist in the _PackageTempDir folder.
&lt;/p&gt;
&lt;p&gt;
Now that we have added this target to the .wpp.targets file we can publish/package
our web project and it the contained .js &amp; .css files will be compressed. &lt;em&gt;Note:
Whenever you modify the .wpp.targets file you will have to unload/reload the web project
so that the changes are picked up, Visual Studio caches your projects.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
In the image below you can see the difference that compressing these files made.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/Windows-Live-Writer/How-to-compress-CSSJavaScript-before-pub_13DD2/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; 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://sedodream.com/content/binary/Windows-Live-Writer/How-to-compress-CSSJavaScript-before-pub_13DD2/image_thumb.png" width="738" height="416" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
You can download the entire project below, as well as take a look at some other resources
that I have that you might be interested in.
&lt;/p&gt;
&lt;p&gt;
Sayed Ibrahim Hashimi
&lt;/p&gt;
&lt;h5&gt;Resources
&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://sedotech.com/content/samples/CompressBeforePublish.zip"&gt;http://sedotech.com/content/samples/CompressBeforePublish.zip&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a title="http://sedotech.com/resources#batching" href="http://sedotech.com/resources#batching"&gt;http://sedotech.com/resources#batching&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://freetodev.wordpress.com/2009/06/24/msbuild-4-0-beforetargets-and-aftertargets/" target="_blank"&gt;MSBuild
BeforeTargets/AfterTargets&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a title="http://sedodream.com/2010/08/15/WebDeploymentToolMSDeployHowToExcludeFilesFromPackageBasedOnConfiguration.aspx" href="http://sedodream.com/2010/08/15/WebDeploymentToolMSDeployHowToExcludeFilesFromPackageBasedOnConfiguration.aspx"&gt;•Web
Deploy: How to exclude files from package based on Configuration&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://svn.offwhite.net/trac/SmallSharpTools.Packer/" target="_blank"&gt;Packer.NET&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,487f5f26-2d6f-4deb-9d5d-24b500cab3ff.aspx</comments>
      <category>Deployment</category>
      <category>MSDeploy</category>
      <category>Web Publishing Pipeline</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=c74e3388-0bdd-4295-85cb-b9ef0286947a</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,c74e3388-0bdd-4295-85cb-b9ef0286947a.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,c74e3388-0bdd-4295-85cb-b9ef0286947a.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c74e3388-0bdd-4295-85cb-b9ef0286947a</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Today I just saw a question posted on stackoverflow.com asking <a href="http://stackoverflow.com/q/4151325/105999" target="_blank">Why
are some Web.config transforms tokenised into SetParameters.xml and others are not</a>?
Let me give some background on this topic for those who are not aware of what the
question is.
</p>
        <p>
With Visual Studio 2010 when you package your application using the Build Deployment
Package context menu option, see image below.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_thumb.png" width="352" height="484" />
          </a>
        </p>
        <p>
When build the package by default the package will be created in obj\{Configuration}\Package\{ProjectName}.zip
where {Configuration} is the current build configuration, and {ProjectName} is the
name of the project. So in this case I since I’m building with Debug and the project
name is MvcApplication1 the package will be placed at <strong>obj\Debug\Package\MvcApplication1.zip</strong>.
If you take this package and then import into IIS 7 with the “Import Application”
option shown below. Note: The machine must have the <a href="http://www.iis.net/download/WebDeploy" target="_blank">Web
Deployment Tool</a> (aka MSDeploy) installed.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_4.png">
            <img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_thumb_1.png" width="218" height="280" />
          </a>
        </p>
        <p>
Once you click on Import Application then browse out to the package you will be shown
a screen which prompts your for parameters. Its shown below.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/SNAGHTML2d2664.png">
            <img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML2d2664" border="0" alt="SNAGHTML2d2664" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/SNAGHTML2d2664_thumb.png" width="681" height="514" />
          </a>
        </p>
        <p>
On this screen you can see that we are prompting for a couple parameter values here.
One is an IIS setting, Application Path, and the other is a connection string which
will be placed inside the web.config file. If your Web Application Project (WAP) 
had 5 different connection strings then they would automatically show up here on this
page. Since connection strings are replaced so often we create parameters for all
connection strings by default. You can define new parameters on your own, quite easily
actually, but that is the topic for another blog post.
</p>
        <p>
Now back to the question. He is asking why do we “tokenize” the connection strings
in web.config. To clarify take a look at my web.config file below.
</p>
        <pre class="brush: xml;">&lt;configuration&gt;
  &lt;appSettings&gt;
    &lt;add key="setting01" value="value01"/&gt;
  &lt;/appSettings&gt;
  
  &lt;connectionStrings&gt;
    &lt;add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" /&gt;
  &lt;/connectionStrings&gt;
  
&lt;/configuration&gt;</pre>
        <p>
After I perform a package this will get changed. Take a look @ the web.config file
which resides in the package (you can get to the file at obj\{CofigurationName}\Package\PackageTmp\web.config).
You will see what is shown below.
</p>
        <pre class="brush: xml;">&lt;configuration&gt;
  &lt;appSettings&gt;
    &lt;add key="setting01" value="value01"/&gt;
  &lt;/appSettings&gt;
  &lt;connectionStrings&gt;
    &lt;add name="ApplicationServices"
         connectionString="$(ReplacableToken_ApplicationServices-Web.config Connection String_0)"
         providerName="System.Data.SqlClient" /&gt;
  &lt;/connectionStrings&gt;

&lt;/configuration&gt;</pre>
        <p>
So his question is why is the connection string replaced with $(ReplacableToken_ApplicationServices-Web.config
Connection String_0) and nothing else is? We do this because we do not want you to
accidently copy your web to a location and have it executing SQL statements against
a SQL server which you did not intend. The idea is that you will create a package
that you can deploy to many different environments. So the value that was in your
web.config (or web.debug.config/web.release.config if you are using a <a href="http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx?wa=wsignin1.0" target="_blank">web.config
transformation</a>) will not be placed inside the web.config in the package. Instead
those values will be used as defaults in the package itself. We also create a SetParameters.xml
file for you so that you can tweak the values. For my app see the MvcApplication1.SetParameters.xml
file below.
</p>
        <pre class="brush: xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;parameters&gt;
  &lt;setParameter name="IIS Web Application Name" 
                value="Default Web Site/MvcApplication1_deploy" /&gt;
  &lt;setParameter name="ApplicationServices-Web.config Connection String" 
                value="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" /&gt;
&lt;/parameters&gt;</pre>
        <p>
The idea is that you can deploy your package in 2 ways. Through the IIS Manager which
will prompt you for the parameters or you can deploy using msdeploy.exe with the –setParamFile
switch to specify the path to the SetParameters.xml file. In this case I could create
a QA01.SetParameters.xml file along with a QA02.SetParameters.xml file to deploy my
web to my two QA servers. How do we do this?
</p>
        <h4>How connection strings are tokenized
</h4>
        <p>
You might be wondering how the connection strings are tokenized to begin with. With
Visual Studio 2010 we released web.config transformations, which all you to write
terse web.config transformations inside of files like web.debug.config/web.release.config.
When you package/publish your web these transform files are used to transform your
web.config based on what you expressed in the appropriate transform file. We have
an MSBuild task TransformXml which performs the transformation. We use that same task
to tokenize the connection strings. If you are interested in the details take a look
at %ProgramFiles32%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
in the <strong>AutoParameterizationWebConfigConnectionStringsCore</strong> target.
</p>
        <p>
Now what if you do not want the connection string tokenized?
</p>
        <h4>Prevent tokenizing connection strings
</h4>
        <p>
If you want to prevent your web.config connection strings from being tokenized it’s
pretty easy. All we need to do is the add a property to the build/package/publish
process. We can do that in 2 ways. Edit the project file itself or create a file with
the name {ProjectName}.wpp.targets where {ProjectName} is the name of your project.
The second approach is easier so I use that. In my case it would be MvcApplication1.wpp.targets.
The contents of the file are shown below.
</p>
        <pre class="brush: xml;">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt;

  &lt;PropertyGroup&gt;
    &lt;AutoParameterizationWebConfigConnectionStrings&gt;false&lt;/AutoParameterizationWebConfigConnectionStrings&gt;
  &lt;/PropertyGroup&gt;
  
&lt;/Project&gt;

<strong><u>Note:
You may need to reload the project in Visual Studio for this to take effect.</u></strong></pre>
        <p>
Inside of this file I have declared the property, AutoParameterizationWebConfigConnectionStrings,
to be false. This is telling the Web Publishing Pipeline (WPP) that it should not
replace replace the connection strings with tokens, instead leave them as they are.
</p>
        <p>
Questions/Comments???
</p>
        <h4>Other Resources
</h4>
        <ul>
          <li>
            <a href="http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx">Config
transformations outside of web app builds</a>
          </li>
          <li>
            <a href="http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx">Extending
XML (web.config) Config transformation</a>
          </li>
        </ul>
      </body>
      <title>ASP.NET Web Application: Publish/Package Tokenizing Parameters</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,c74e3388-0bdd-4295-85cb-b9ef0286947a.aspx</guid>
      <link>http://sedodream.com/2010/11/11/ASPNETWebApplicationPublishPackageTokenizingParameters.aspx</link>
      <pubDate>Thu, 11 Nov 2010 05:41:09 GMT</pubDate>
      <description>&lt;p&gt;
Today I just saw a question posted on stackoverflow.com asking &lt;a href="http://stackoverflow.com/q/4151325/105999" target="_blank"&gt;Why
are some Web.config transforms tokenised into SetParameters.xml and others are not&lt;/a&gt;?
Let me give some background on this topic for those who are not aware of what the
question is.
&lt;/p&gt;
&lt;p&gt;
With Visual Studio 2010 when you package your application using the Build Deployment
Package context menu option, see image below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_thumb.png" width="352" height="484" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
When build the package by default the package will be created in obj\{Configuration}\Package\{ProjectName}.zip
where {Configuration} is the current build configuration, and {ProjectName} is the
name of the project. So in this case I since I’m building with Debug and the project
name is MvcApplication1 the package will be placed at &lt;strong&gt;obj\Debug\Package\MvcApplication1.zip&lt;/strong&gt;.
If you take this package and then import into IIS 7 with the “Import Application”
option shown below. Note: The machine must have the &lt;a href="http://www.iis.net/download/WebDeploy" target="_blank"&gt;Web
Deployment Tool&lt;/a&gt; (aka MSDeploy) installed.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/image_thumb_1.png" width="218" height="280" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Once you click on Import Application then browse out to the package you will be shown
a screen which prompts your for parameters. Its shown below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/SNAGHTML2d2664.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML2d2664" border="0" alt="SNAGHTML2d2664" src="http://sedodream.com/content/binary/Windows-Live-Writer/e49083eab7c6_12533/SNAGHTML2d2664_thumb.png" width="681" height="514" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
On this screen you can see that we are prompting for a couple parameter values here.
One is an IIS setting, Application Path, and the other is a connection string which
will be placed inside the web.config file. If your Web Application Project (WAP)&amp;#160;
had 5 different connection strings then they would automatically show up here on this
page. Since connection strings are replaced so often we create parameters for all
connection strings by default. You can define new parameters on your own, quite easily
actually, but that is the topic for another blog post.
&lt;/p&gt;
&lt;p&gt;
Now back to the question. He is asking why do we “tokenize” the connection strings
in web.config. To clarify take a look at my web.config file below.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;configuration&amp;gt;
  &amp;lt;appSettings&amp;gt;
    &amp;lt;add key=&amp;quot;setting01&amp;quot; value=&amp;quot;value01&amp;quot;/&amp;gt;
  &amp;lt;/appSettings&amp;gt;
  
  &amp;lt;connectionStrings&amp;gt;
    &amp;lt;add name=&amp;quot;ApplicationServices&amp;quot;
         connectionString=&amp;quot;data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true&amp;quot;
         providerName=&amp;quot;System.Data.SqlClient&amp;quot; /&amp;gt;
  &amp;lt;/connectionStrings&amp;gt;
  
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;
After I perform a package this will get changed. Take a look @ the web.config file
which resides in the package (you can get to the file at obj\{CofigurationName}\Package\PackageTmp\web.config).
You will see what is shown below.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;configuration&amp;gt;
  &amp;lt;appSettings&amp;gt;
    &amp;lt;add key=&amp;quot;setting01&amp;quot; value=&amp;quot;value01&amp;quot;/&amp;gt;
  &amp;lt;/appSettings&amp;gt;
  &amp;lt;connectionStrings&amp;gt;
    &amp;lt;add name=&amp;quot;ApplicationServices&amp;quot;
         connectionString=&amp;quot;$(ReplacableToken_ApplicationServices-Web.config Connection String_0)&amp;quot;
         providerName=&amp;quot;System.Data.SqlClient&amp;quot; /&amp;gt;
  &amp;lt;/connectionStrings&amp;gt;

&amp;lt;/configuration&amp;gt;&lt;/pre&gt;
&lt;p&gt;
So his question is why is the connection string replaced with $(ReplacableToken_ApplicationServices-Web.config
Connection String_0) and nothing else is? We do this because we do not want you to
accidently copy your web to a location and have it executing SQL statements against
a SQL server which you did not intend. The idea is that you will create a package
that you can deploy to many different environments. So the value that was in your
web.config (or web.debug.config/web.release.config if you are using a &lt;a href="http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx?wa=wsignin1.0" target="_blank"&gt;web.config
transformation&lt;/a&gt;) will not be placed inside the web.config in the package. Instead
those values will be used as defaults in the package itself. We also create a SetParameters.xml
file for you so that you can tweak the values. For my app see the MvcApplication1.SetParameters.xml
file below.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;parameters&amp;gt;
  &amp;lt;setParameter name=&amp;quot;IIS Web Application Name&amp;quot; 
                value=&amp;quot;Default Web Site/MvcApplication1_deploy&amp;quot; /&amp;gt;
  &amp;lt;setParameter name=&amp;quot;ApplicationServices-Web.config Connection String&amp;quot; 
                value=&amp;quot;data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true&amp;quot; /&amp;gt;
&amp;lt;/parameters&amp;gt;&lt;/pre&gt;
&lt;p&gt;
The idea is that you can deploy your package in 2 ways. Through the IIS Manager which
will prompt you for the parameters or you can deploy using msdeploy.exe with the –setParamFile
switch to specify the path to the SetParameters.xml file. In this case I could create
a QA01.SetParameters.xml file along with a QA02.SetParameters.xml file to deploy my
web to my two QA servers. How do we do this?
&lt;/p&gt;
&lt;h4&gt;How connection strings are tokenized
&lt;/h4&gt;
&lt;p&gt;
You might be wondering how the connection strings are tokenized to begin with. With
Visual Studio 2010 we released web.config transformations, which all you to write
terse web.config transformations inside of files like web.debug.config/web.release.config.
When you package/publish your web these transform files are used to transform your
web.config based on what you expressed in the appropriate transform file. We have
an MSBuild task TransformXml which performs the transformation. We use that same task
to tokenize the connection strings. If you are interested in the details take a look
at %ProgramFiles32%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets
in the &lt;strong&gt;AutoParameterizationWebConfigConnectionStringsCore&lt;/strong&gt; target.
&lt;/p&gt;
&lt;p&gt;
Now what if you do not want the connection string tokenized?
&lt;/p&gt;
&lt;h4&gt;Prevent tokenizing connection strings
&lt;/h4&gt;
&lt;p&gt;
If you want to prevent your web.config connection strings from being tokenized it’s
pretty easy. All we need to do is the add a property to the build/package/publish
process. We can do that in 2 ways. Edit the project file itself or create a file with
the name {ProjectName}.wpp.targets where {ProjectName} is the name of your project.
The second approach is easier so I use that. In my case it would be MvcApplication1.wpp.targets.
The contents of the file are shown below.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;Project xmlns=&amp;quot;http://schemas.microsoft.com/developer/msbuild/2003&amp;quot;&amp;gt;

  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;AutoParameterizationWebConfigConnectionStrings&amp;gt;false&amp;lt;/AutoParameterizationWebConfigConnectionStrings&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
  
&amp;lt;/Project&amp;gt;

&lt;strong&gt;&lt;u&gt;Note:
You may need to reload the project in Visual Studio for this to take effect.&lt;/u&gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;p&gt;
Inside of this file I have declared the property, AutoParameterizationWebConfigConnectionStrings,
to be false. This is telling the Web Publishing Pipeline (WPP) that it should not
replace replace the connection strings with tokens, instead leave them as they are.
&lt;/p&gt;
&lt;p&gt;
Questions/Comments???
&lt;/p&gt;
&lt;h4&gt;Other Resources
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx"&gt;Config
transformations outside of web app builds&lt;/a&gt; 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://sedodream.com/2010/09/09/ExtendingXMLWebconfigConfigTransformation.aspx"&gt;Extending
XML (web.config) Config transformation&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,c74e3388-0bdd-4295-85cb-b9ef0286947a.aspx</comments>
      <category>asp.net</category>
      <category>Deployment</category>
      <category>MSBuild</category>
      <category>MSBuild 4.0</category>
      <category>MSDeploy</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=c926b957-b578-4d98-bbce-2260945de5cf</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,c926b957-b578-4d98-bbce-2260945de5cf.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,c926b957-b578-4d98-bbce-2260945de5cf.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=c926b957-b578-4d98-bbce-2260945de5cf</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A while back I posted an entry on <a href="http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx">How
to build a package including extra files or exclude files</a> a reader posted a question
to <a href="http://stackoverflow.com">StackOverflow.com</a> asking how to exclude
files from the created package based on the configuration for the project. He asked
me to take a look at it so I figured it would be a good blog post.
</p>
        <p>
From the previous <a href="http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx">post</a> we
can see that the way to exclude files from packaging is by declaring an item as follows.
</p>
        <pre class="brush: xml;">&lt;ItemGroup&gt;
  &lt;ExcludeFromPackageFiles Include="Sample.Debug.xml"&gt;
    &lt;FromTarget&gt;Project&lt;/FromTarget&gt;
  &lt;/ExcludeFromPackageFiles&gt;
&lt;/ItemGroup&gt;</pre>
        <p>
So we need to extend this to only exclude files if the config is a certain value.
Since MSBuild supports <a href="http://msdn.microsoft.com/en-us/library/7szfhaft.aspx">conditions
on almost every element</a> this is going to be a breeze. As an example I have created
a sample web project with a scripts directory that has the following files.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_4.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_1.png" width="244" height="214" />
          </a>
        </p>
        <p>
In that folder there I there are two files which have ‘debug’ in the name of the file.
We only want those to be included if the configuration is set to <strong>Debug</strong>,
or another way of putting it is we want to exclude those files if the configuration
is not Debug. So we need to create to add files to the <strong>ExcludeFromPackageFiles</strong> and
guard it with the condition that the configuration is not debug. Here is that.
</p>
        <pre class="brush: xml;">&lt;Target Name="CustomExlucdeFiles" BeforeTargets="ExcludeFilesFromPackage"&gt;
  &lt;ItemGroup Condition=" '$(Configuration)'!='Debug' "&gt;
    &lt;ExcludeFromPackageFiles Include="scripts\**\*debug*" /&gt;
  &lt;/ItemGroup&gt;
  
  &lt;Message Text="Configuration: $(Configuration)" /&gt;
  &lt;Message Text="ExcludeFromPackageFiles: @(ExcludeFromPackageFiles)" Importance="high" /&gt;
&lt;/Target&gt;</pre>
        <p>
You can see the item group defined above which does what we want. Please note that
I put this inside of a target, CustomExcludeFiles, I will discuss why in a bit but
let’s stay on topic now. So this is pretty straight forward when the item group is
evaluated all files under <em>scripts</em> which have <em>debug</em> in the file name
will be excluded if the configuration is not set to <em>Debug</em>. Let’s see if it
works, I will build the deployment package once in both debug &amp; release then examine
the contents of the Package folder.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_6.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_2.png" width="709" height="465" />
          </a>
        </p>
        <p>
So we can see that the files were excluded from the Release package. Now back to why
I declared the item group in a target instead of directly in the project file itself.
I noticed that if I declare that item in the project file there are some visual issues
with the representation in the Solution Explorer. To be specific the files show up
as dups, see image below.
</p>
        <p>
          <a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_8.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_3.png" width="244" height="233" />
          </a>
        </p>
        <p>
I have reported this to the right people, but for now this is a harmless issue with
an easy workaround.
</p>
        <p>
Sayed Ibrahim Hashimi
</p>
      </body>
      <title>Web Deployment Tool (MSDeploy): How to exclude files from package based on Configuration</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,c926b957-b578-4d98-bbce-2260945de5cf.aspx</guid>
      <link>http://sedodream.com/2010/08/15/WebDeploymentToolMSDeployHowToExcludeFilesFromPackageBasedOnConfiguration.aspx</link>
      <pubDate>Sun, 15 Aug 2010 18:56:50 GMT</pubDate>
      <description>&lt;p&gt;
A while back I posted an entry on &lt;a href="http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx"&gt;How
to build a package including extra files or exclude files&lt;/a&gt; a reader posted a question
to &lt;a href="http://stackoverflow.com"&gt;StackOverflow.com&lt;/a&gt; asking how to exclude
files from the created package based on the configuration for the project. He asked
me to take a look at it so I figured it would be a good blog post.
&lt;/p&gt;
&lt;p&gt;
From the previous &lt;a href="http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx"&gt;post&lt;/a&gt; we
can see that the way to exclude files from packaging is by declaring an item as follows.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;ItemGroup&amp;gt;
  &amp;lt;ExcludeFromPackageFiles Include=&amp;quot;Sample.Debug.xml&amp;quot;&amp;gt;
    &amp;lt;FromTarget&amp;gt;Project&amp;lt;/FromTarget&amp;gt;
  &amp;lt;/ExcludeFromPackageFiles&amp;gt;
&amp;lt;/ItemGroup&amp;gt;&lt;/pre&gt;
&lt;p&gt;
So we need to extend this to only exclude files if the config is a certain value.
Since MSBuild supports &lt;a href="http://msdn.microsoft.com/en-us/library/7szfhaft.aspx"&gt;conditions
on almost every element&lt;/a&gt; this is going to be a breeze. As an example I have created
a sample web project with a scripts directory that has the following files.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_4.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_1.png" width="244" height="214" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In that folder there I there are two files which have ‘debug’ in the name of the file.
We only want those to be included if the configuration is set to &lt;strong&gt;Debug&lt;/strong&gt;,
or another way of putting it is we want to exclude those files if the configuration
is not Debug. So we need to create to add files to the &lt;strong&gt;ExcludeFromPackageFiles&lt;/strong&gt; and
guard it with the condition that the configuration is not debug. Here is that.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;Target Name=&amp;quot;CustomExlucdeFiles&amp;quot; BeforeTargets=&amp;quot;ExcludeFilesFromPackage&amp;quot;&amp;gt;
  &amp;lt;ItemGroup Condition=&amp;quot; '$(Configuration)'!='Debug' &amp;quot;&amp;gt;
    &amp;lt;ExcludeFromPackageFiles Include=&amp;quot;scripts\**\*debug*&amp;quot; /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
  
  &amp;lt;Message Text=&amp;quot;Configuration: $(Configuration)&amp;quot; /&amp;gt;
  &amp;lt;Message Text=&amp;quot;ExcludeFromPackageFiles: @(ExcludeFromPackageFiles)&amp;quot; Importance=&amp;quot;high&amp;quot; /&amp;gt;
&amp;lt;/Target&amp;gt;&lt;/pre&gt;
&lt;p&gt;
You can see the item group defined above which does what we want. Please note that
I put this inside of a target, CustomExcludeFiles, I will discuss why in a bit but
let’s stay on topic now. So this is pretty straight forward when the item group is
evaluated all files under &lt;em&gt;scripts&lt;/em&gt; which have &lt;em&gt;debug&lt;/em&gt; in the file name
will be excluded if the configuration is not set to &lt;em&gt;Debug&lt;/em&gt;. Let’s see if it
works, I will build the deployment package once in both debug &amp;amp; release then examine
the contents of the Package folder.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_6.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_2.png" width="709" height="465" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
So we can see that the files were excluded from the Release package. Now back to why
I declared the item group in a target instead of directly in the project file itself.
I noticed that if I declare that item in the project file there are some visual issues
with the representation in the Solution Explorer. To be specific the files show up
as dups, see image below.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_8.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://sedodream.com/content/binary/WindowsLiveWriter/WebDeploymentToolMSDeployHowtoexcludefil_A290/image_thumb_3.png" width="244" height="233" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
I have reported this to the right people, but for now this is a harmless issue with
an easy workaround.
&lt;/p&gt;
&lt;p&gt;
Sayed Ibrahim Hashimi
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,c926b957-b578-4d98-bbce-2260945de5cf.aspx</comments>
      <category>Deployment</category>
      <category>MSBuild</category>
      <category>MSDeploy</category>
      <category>Web Deployment Tool</category>
      <category>Web Publishing Pipeline</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=610e67fd-a3e6-41cd-bab4-1e462ae76e8b</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,610e67fd-a3e6-41cd-bab4-1e462ae76e8b.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,610e67fd-a3e6-41cd-bab4-1e462ae76e8b.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=610e67fd-a3e6-41cd-bab4-1e462ae76e8b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you are doing any kind of web development and you are not familiar with the <a href="http://www.microsoft.com/web/downloads/platform.aspx">Web
Platform Installer</a>(WPI) then you need to take a look at it. I just installed <a href="http://wordpress.org/">WordPress</a> on
IIS 7 with just a few clicks and  filled in a few text boxes. When you install <a href="http://wordpress.org/">WordPress</a> there
are some prerequisites like <a href="http://www.mysql.com/">mySql</a> and <a href="http://www.php.net/">php</a>.
The WPI was smart enough to realize that I had neither installed, downloaded those,
installed them and configured them. I was prompted for some info for those tools of
course. I’ve also installed a few other apps using the WPI like, <a href="http://www.iis.net/download/WebDeploy">MSDeploy</a> and <a href="http://www.dasblog.info/">dasBlog</a> and
I didn’t have any issues what so ever.
</p>
        <p>
When using the WPI there are two main categories that can be installed, <em>Web Platform</em> and <em>Web
Applications</em>. The Web Platform category includes items like frameworks (i.e.
ASP.NET, PHP), Database (i.e. mySql) and other high level shared components. The Web
Applications includes various web applications. Some others that I didn’t list previously
include; <a href="http://www.dotnetnuke.com/">DotNetNuke</a>, <a href="http://www.nopcommerce.com/">nopCommerce</a>,
and <a href="http://umbraco.org/">umbarco</a> just to name a few. I’m not sure how
many apps are available but it looks like at least 50.
</p>
        <p>
If you are an app creator and would like to share your app then you can visit the <a href="http://www.microsoft.com/web/gallery/developer.aspx">WPI
Developer</a> page for a starting point.
</p>
      </body>
      <title>Installing web apps made easy: Web Platform Installer</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,610e67fd-a3e6-41cd-bab4-1e462ae76e8b.aspx</guid>
      <link>http://sedodream.com/2010/06/07/InstallingWebAppsMadeEasyWebPlatformInstaller.aspx</link>
      <pubDate>Mon, 07 Jun 2010 03:17:01 GMT</pubDate>
      <description>&lt;p&gt;
If you are doing any kind of web development and you are not familiar with the &lt;a href="http://www.microsoft.com/web/downloads/platform.aspx"&gt;Web
Platform Installer&lt;/a&gt;(WPI) then you need to take a look at it. I just installed &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; on
IIS 7 with just a few clicks and&amp;#160; filled in a few text boxes. When you install &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; there
are some prerequisites like &lt;a href="http://www.mysql.com/"&gt;mySql&lt;/a&gt; and &lt;a href="http://www.php.net/"&gt;php&lt;/a&gt;.
The WPI was smart enough to realize that I had neither installed, downloaded those,
installed them and configured them. I was prompted for some info for those tools of
course. I’ve also installed a few other apps using the WPI like, &lt;a href="http://www.iis.net/download/WebDeploy"&gt;MSDeploy&lt;/a&gt; and &lt;a href="http://www.dasblog.info/"&gt;dasBlog&lt;/a&gt; and
I didn’t have any issues what so ever.
&lt;/p&gt;
&lt;p&gt;
When using the WPI there are two main categories that can be installed, &lt;em&gt;Web Platform&lt;/em&gt; and &lt;em&gt;Web
Applications&lt;/em&gt;. The Web Platform category includes items like frameworks (i.e.
ASP.NET, PHP), Database (i.e. mySql) and other high level shared components. The Web
Applications includes various web applications. Some others that I didn’t list previously
include; &lt;a href="http://www.dotnetnuke.com/"&gt;DotNetNuke&lt;/a&gt;, &lt;a href="http://www.nopcommerce.com/"&gt;nopCommerce&lt;/a&gt;,
and &lt;a href="http://umbraco.org/"&gt;umbarco&lt;/a&gt; just to name a few. I’m not sure how
many apps are available but it looks like at least 50.
&lt;/p&gt;
&lt;p&gt;
If you are an app creator and would like to share your app then you can visit the &lt;a href="http://www.microsoft.com/web/gallery/developer.aspx"&gt;WPI
Developer&lt;/a&gt; page for a starting point.
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,610e67fd-a3e6-41cd-bab4-1e462ae76e8b.aspx</comments>
      <category>Deployment</category>
      <category>IIS</category>
      <category>MSDeploy</category>
      <category>web</category>
      <category>Web Platform Installer</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=317a6dbd-fdc6-4238-bda4-916e208fe702</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,317a6dbd-fdc6-4238-bda4-916e208fe702.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,317a6dbd-fdc6-4238-bda4-916e208fe702.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=317a6dbd-fdc6-4238-bda4-916e208fe702</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I just received a message from a reader asking about how he can extend the package
process in Visual Studio 2010 RC to include files that his web project doesn't contain
or reference. If you are not familiar with this Visual Studio 2010 has support for
creating Web Packages now. These packages can be used with the <a href="http://www.iis.net/expand/WebDeploy">Web
Deployment Tool</a> to simply deployments. The Web Deployment Tool is also known as
MSDeploy.
</p>
        <p>
He was actually asking about including external dependencies, but in this post I will
show how to include some text files which are already written to disk. To extend this
to use those dependencies should be pretty easy. Here is what I did: 
</p>
        <ol>
          <li>
Created a new ASP.NET MVC 2 Project (because he stated this is what he has) 
</li>
          <li>
Added a folder named Extra Files one folder above where the .csproj file is located
and put a few files there 
</li>
          <li>
In Visual Studio right clicked on the project selected “Unload Project” 
</li>
          <li>
In Visual Studio right clicked on the project selected “Edit project” 
</li>
        </ol>
        <p>
Then at the bottom of the project file (<em>right above the &lt;/Project&gt; statement</em>).
I inserted the following XML fragments.
</p>
        <pre class="brush: xml;">&lt;PropertyGroup&gt;
  &lt;CopyAllFilesToSingleFolderForPackageDependsOn&gt;
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  &lt;/CopyAllFilesToSingleFolderForPackageDependsOn&gt;
&lt;/PropertyGroup&gt;
&lt;Target Name="CustomCollectFiles"&gt;
  &lt;ItemGroup&gt;
    &lt;_CustomFiles Include="..\Extra Files\**\*"&gt;
      &lt;DestinationRelativePath&gt;%(RecursiveDir)%(Filename)%(Extension)&lt;/DestinationRelativePath&gt;
    &lt;/_CustomFiles&gt;

    &lt;FilesForPackagingFromProject  Include="%(_CustomFiles.Identity)"&gt;
      &lt;DestinationRelativePath&gt;Extra Files\%(RecursiveDir)%(Filename)%(Extension)&lt;/DestinationRelativePath&gt;
    &lt;/FilesForPackagingFromProject&gt;
  &lt;/ItemGroup&gt;
&lt;/Target&gt;</pre>
        <p>
Here I do a few things. First I extend the <strong>CopyAllFilesToSingleFolderForPackage</strong> target
by extending its DependsOn property to include my target <strong>CustomCollectFiles</strong>.
This will inject my target at the right time into the Web Publishing Pipeline. Inside
that target I need to add my files into the <strong>FilesForPackagingFromProject</strong> item
group, but I must do so in a particular manner. Specifically I have to define the
relative path to where it should be written. This captured inside the DestinationRelativePath
metadata item. This is required because sometimes you may have a file which is named,
or in a different folder, than it was originally. After you do that you will see that
the web package that is created when you create a web package from Visual Studio (or
from the command line using msbuild.exe for that matter) contains your custom files.
</p>
        <p>
I just posted a blog about my upcoming talk discussing <a href="http://sedodream.com/2010/03/10/SpeakingOnAutomatingWebDeploymentsAndASPNETMVC.aspx">Web
Deployments and ASP.NET MVC</a>, once again check it out :)
</p>
        <p>
Sayed Ibrahim Hashimi
</p>
      </body>
      <title>Web Deployment Tool: Including other Files</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,317a6dbd-fdc6-4238-bda4-916e208fe702.aspx</guid>
      <link>http://sedodream.com/2010/03/10/WebDeploymentToolIncludingOtherFiles.aspx</link>
      <pubDate>Wed, 10 Mar 2010 05:26:14 GMT</pubDate>
      <description>&lt;p&gt;
I just received a message from a reader asking about how he can extend the package
process in Visual Studio 2010 RC to include files that his web project doesn't contain
or reference. If you are not familiar with this Visual Studio 2010 has support for
creating Web Packages now. These packages can be used with the &lt;a href="http://www.iis.net/expand/WebDeploy"&gt;Web
Deployment Tool&lt;/a&gt; to simply deployments. The Web Deployment Tool is also known as
MSDeploy.
&lt;/p&gt;
&lt;p&gt;
He was actually asking about including external dependencies, but in this post I will
show how to include some text files which are already written to disk. To extend this
to use those dependencies should be pretty easy. Here is what I did: 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Created a new ASP.NET MVC 2 Project (because he stated this is what he has) 
&lt;/li&gt;
&lt;li&gt;
Added a folder named Extra Files one folder above where the .csproj file is located
and put a few files there 
&lt;/li&gt;
&lt;li&gt;
In Visual Studio right clicked on the project selected “Unload Project” 
&lt;/li&gt;
&lt;li&gt;
In Visual Studio right clicked on the project selected “Edit project” 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Then at the bottom of the project file (&lt;em&gt;right above the &amp;lt;/Project&amp;gt; statement&lt;/em&gt;).
I inserted the following XML fragments.
&lt;/p&gt;
&lt;pre class="brush: xml;"&gt;&amp;lt;PropertyGroup&amp;gt;
  &amp;lt;CopyAllFilesToSingleFolderForPackageDependsOn&amp;gt;
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  &amp;lt;/CopyAllFilesToSingleFolderForPackageDependsOn&amp;gt;
&amp;lt;/PropertyGroup&amp;gt;
&amp;lt;Target Name=&amp;quot;CustomCollectFiles&amp;quot;&amp;gt;
  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;_CustomFiles Include=&amp;quot;..\Extra Files\**\*&amp;quot;&amp;gt;
      &amp;lt;DestinationRelativePath&amp;gt;%(RecursiveDir)%(Filename)%(Extension)&amp;lt;/DestinationRelativePath&amp;gt;
    &amp;lt;/_CustomFiles&amp;gt;

    &amp;lt;FilesForPackagingFromProject  Include=&amp;quot;%(_CustomFiles.Identity)&amp;quot;&amp;gt;
      &amp;lt;DestinationRelativePath&amp;gt;Extra Files\%(RecursiveDir)%(Filename)%(Extension)&amp;lt;/DestinationRelativePath&amp;gt;
    &amp;lt;/FilesForPackagingFromProject&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;
&amp;lt;/Target&amp;gt;&lt;/pre&gt;
&lt;p&gt;
Here I do a few things. First I extend the &lt;strong&gt;CopyAllFilesToSingleFolderForPackage&lt;/strong&gt; target
by extending its DependsOn property to include my target &lt;strong&gt;CustomCollectFiles&lt;/strong&gt;.
This will inject my target at the right time into the Web Publishing Pipeline. Inside
that target I need to add my files into the &lt;strong&gt;FilesForPackagingFromProject&lt;/strong&gt; item
group, but I must do so in a particular manner. Specifically I have to define the
relative path to where it should be written. This captured inside the DestinationRelativePath
metadata item. This is required because sometimes you may have a file which is named,
or in a different folder, than it was originally. After you do that you will see that
the web package that is created when you create a web package from Visual Studio (or
from the command line using msbuild.exe for that matter) contains your custom files.
&lt;/p&gt;
&lt;p&gt;
I just posted a blog about my upcoming talk discussing &lt;a href="http://sedodream.com/2010/03/10/SpeakingOnAutomatingWebDeploymentsAndASPNETMVC.aspx"&gt;Web
Deployments and ASP.NET MVC&lt;/a&gt;, once again check it out :)
&lt;/p&gt;
&lt;p&gt;
Sayed Ibrahim Hashimi
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,317a6dbd-fdc6-4238-bda4-916e208fe702.aspx</comments>
      <category>Deployment</category>
      <category>MSDeploy</category>
      <category>Web Deployment Tool</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=9e1fdde2-eb09-4647-9aad-2190fbdfbb2f</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,9e1fdde2-eb09-4647-9aad-2190fbdfbb2f.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,9e1fdde2-eb09-4647-9aad-2190fbdfbb2f.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=9e1fdde2-eb09-4647-9aad-2190fbdfbb2f</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I will be giving an online <a href="http://office.microsoft.com/en-us/livemeeting/default.aspx">LiveMeeting</a> Session
hosted by <a href="http://www.microsoft.com/en/us/default.aspx">Microsoft</a> next
week on Wednesday October 14, 2009 at 4 PDT (Redmond Time). The title is Simplifying
Deployment with the Web Deployment Tool (MSDeploy). If you are not aware of <a href="http://www.iis.net/extensions/WebDeploymentTool">MSDeploy</a> it
is a newly released tool to ease the pain of deploying ASP.NET sites. If you are doing
any type of deployment of ASP.NET sites (Manual or Automated) then you must check
out MSDeploy, it will change how you look at deployment of ASP.NET sites all together.
Right now there is not an abundant amount of knowledge or material available on this
tool, but I think that will change soon. Hopefully I can contribute to some of that.
In any case, if you are available I would love to have you check out my session. There
will be some guys from Microsoft on the line including the Program Manager of the
Web Deployment Tool <a href="http://vishaljoshi.blogspot.com/">Vishal Joshi</a>. I'm
sure he will chime in when I try to mislead you guys by feeding your mis-information. 
</p>
        <p>
Here is the info about the presentation. 
</p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>
              <em>Simplifying Deployment
with the Web Deployment Tool (MSDeploy)</em>
            </strong>
          </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">You are invited to join the talk
which is scheduled for </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Wednesday, October 14<sup>th</sup>,
2009 | 4:00pm – 5:00pm (PDT, Redmond time)</strong>
          </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Abstract</strong>
          </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">Deploying ASP.NET Websites has always
been a challenge and different teams have used different approaches to overcoming
those challenges. Microsoft has offered some support for making deployment easier
in the past. For instance they first introduced Web Deployment Projects for Visual
Studio 2005, and also have a version for 2008. Web Deployment Projects do greatly
simplify the process of calling the aspnet_compiler and aspnet_merge tool but even
though their title states "Deployment" they had no support for physically deploying
the site. Now Microsoft has introduced the Web Deployment Tool, also known as MSDeploy.
MSDeploy will bridge the gap between taking a web site and physically deploying it
to its destination. With MSDeploy you can easily and very effectively perform tasks
such as pushing an ASP.NET site (Web site, Web Application Project, ASP.NET, etc)
from one machine to several other machines. This is achieved by the target machines
having the MSDeploy Remote Agent Service installed and running. You can sync two different
Web Sites that are hosted in IIS, you can create a web package (simply a .zip file)
and use that as your source, you can sync two different folders, and many other options.
Another compelling feature of MSDeploy is that it will be integrated into Visual Studio
2010. From Visual Studio 2010 you can compile your ASP.NET Web Application Project
and then create the Web Package which contains all your content files plus IIS settings.
This one file will full describe your web. </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Live Meeting Information</strong>
          </span>
        </p>
        <p>
          <a href="https://www.livemeeting.com/cc/mvp/join?id=PR7D6Z&amp;role=attend&amp;pw=A5128ML0Y0D">
            <span style="font-family:Georgia">
              <strong>Join
the meeting.</strong>
            </span>
          </a>
          <span style="color:#333333; font-family:Georgia">
            <br />
            <strong>Audio Information</strong>
            <br />
            <strong>Computer Audio</strong>
            <br />
To use computer audio, you need speakers and microphone, or a headset. 
<br /><strong>Telephone conferencing</strong><br />
Use the information below to connect: 
<br />
Toll-free: +1 (866) 500-6738 
<br />
Toll: +1 (203) 480-8000 
<br />
Participant code: 5460396 </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Please join 10 minutes prior
to the start time.</strong>
          </span>
        </p>
        <p>
          <span style="font-family:Georgia">
            <span style="color:#333333">
              <strong>First Time Users:</strong>
              <br />
To save time before the meeting, <a href="http://go.microsoft.com/fwlink/?LinkId=90703" /></span>check
your system<span style="color:#333333"> to make sure it is ready to use Microsoft
Office Live Meeting. 
<br /><strong>Notes</strong></span></span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Troubleshooting</strong>
            <br />
Unable to join the meeting? Follow these steps: </span>
        </p>
        <p>
          <span style="font-family:Georgia">
            <span style="color:#333333">1. Copy this address
and paste it into your web browser: 
<br /><a href="https://www.livemeeting.com/cc/mvp/join" /></span>https://www.livemeeting.com/cc/mvp/join<span style="color:#333333"></span></span>
        </p>
        <p>
          <span style="font-family:Georgia">
            <span style="color:#333333">2. Copy and paste the
required information: 
<br />
Meeting ID: PR7D6Z 
<br />
Entry Code: A5128ML0Y0D 
<br />
Location: <a href="https://www.livemeeting.com/cc/mvp" /></span>https://www.livemeeting.com/cc/mvp<span style="color:#333333"></span></span>
        </p>
        <p>
          <span style="font-family:Georgia">
            <span style="color:#333333">If you still cannot
enter the meeting, <a href="http://r.office.microsoft.com/r/rlidLiveMeeting?p1=12&amp;p2=en_US&amp;p3=LMInfo&amp;p4=support" /></span>contact
support<span style="color:#333333"></span></span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">
            <strong>Note</strong>
          </span>
        </p>
        <p>
          <span style="color:#333333; font-family:Georgia">Microsoft Office Live Meeting can
be used to record meetings. By participating in this meeting, you agree that your
communications may be monitored or recorded at any time during the meeting. </span>
        </p>
        <p>
        </p>
        <p>
Sayed Ibrahim Hashimi 
</p>
        <p>
        </p>
        <p>
        </p>
      </body>
      <title>MSDeploy: Interactive Online Session</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,9e1fdde2-eb09-4647-9aad-2190fbdfbb2f.aspx</guid>
      <link>http://sedodream.com/2009/10/09/MSDeployInteractiveOnlineSession.aspx</link>
      <pubDate>Fri, 09 Oct 2009 02:43:27 GMT</pubDate>
      <description>&lt;p&gt;
I will be giving an online &lt;a href="http://office.microsoft.com/en-us/livemeeting/default.aspx"&gt;LiveMeeting&lt;/a&gt; Session
hosted by &lt;a href="http://www.microsoft.com/en/us/default.aspx"&gt;Microsoft&lt;/a&gt; next
week on Wednesday October 14, 2009 at 4 PDT (Redmond Time). The title is Simplifying
Deployment with the Web Deployment Tool (MSDeploy). If you are not aware of &lt;a href="http://www.iis.net/extensions/WebDeploymentTool"&gt;MSDeploy&lt;/a&gt; it
is a newly released tool to ease the pain of deploying ASP.NET sites. If you are doing
any type of deployment of ASP.NET sites (Manual or Automated) then you must check
out MSDeploy, it will change how you look at deployment of ASP.NET sites all together.
Right now there is not an abundant amount of knowledge or material available on this
tool, but I think that will change soon. Hopefully I can contribute to some of that.
In any case, if you are available I would love to have you check out my session. There
will be some guys from Microsoft on the line including the Program Manager of the
Web Deployment Tool &lt;a href="http://vishaljoshi.blogspot.com/"&gt;Vishal Joshi&lt;/a&gt;. I'm
sure he will chime in when I try to mislead you guys by feeding your mis-information. 
&lt;/p&gt;
&lt;p&gt;
Here is the info about the presentation. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;&lt;em&gt;Simplifying Deployment
with the Web Deployment Tool (MSDeploy)&lt;/em&gt;&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;You are invited to join the talk
which is scheduled for &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Wednesday, October 14&lt;sup&gt;th&lt;/sup&gt;,
2009 | 4:00pm – 5:00pm (PDT, Redmond time)&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Abstract&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;Deploying ASP.NET Websites has always
been a challenge and different teams have used different approaches to overcoming
those challenges. Microsoft has offered some support for making deployment easier
in the past. For instance they first introduced Web Deployment Projects for Visual
Studio 2005, and also have a version for 2008. Web Deployment Projects do greatly
simplify the process of calling the aspnet_compiler and aspnet_merge tool but even
though their title states "Deployment" they had no support for physically deploying
the site. Now Microsoft has introduced the Web Deployment Tool, also known as MSDeploy.
MSDeploy will bridge the gap between taking a web site and physically deploying it
to its destination. With MSDeploy you can easily and very effectively perform tasks
such as pushing an ASP.NET site (Web site, Web Application Project, ASP.NET, etc)
from one machine to several other machines. This is achieved by the target machines
having the MSDeploy Remote Agent Service installed and running. You can sync two different
Web Sites that are hosted in IIS, you can create a web package (simply a .zip file)
and use that as your source, you can sync two different folders, and many other options.
Another compelling feature of MSDeploy is that it will be integrated into Visual Studio
2010. From Visual Studio 2010 you can compile your ASP.NET Web Application Project
and then create the Web Package which contains all your content files plus IIS settings.
This one file will full describe your web. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Live Meeting Information&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://www.livemeeting.com/cc/mvp/join?id=PR7D6Z&amp;amp;role=attend&amp;amp;pw=A5128ML0Y0D"&gt;&lt;span style="font-family:Georgia"&gt;&lt;strong&gt;Join
the meeting.&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#333333; font-family:Georgia"&gt; 
&lt;br /&gt;
&lt;strong&gt;Audio Information&lt;/strong&gt; 
&lt;br /&gt;
&lt;strong&gt;Computer Audio&lt;/strong&gt; 
&lt;br /&gt;
To use computer audio, you need speakers and microphone, or a headset. 
&lt;br /&gt;
&lt;strong&gt;Telephone conferencing&lt;/strong&gt; 
&lt;br /&gt;
Use the information below to connect: 
&lt;br /&gt;
Toll-free: +1 (866) 500-6738 
&lt;br /&gt;
Toll: +1 (203) 480-8000 
&lt;br /&gt;
Participant code: 5460396 &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Please join 10 minutes prior
to the start time.&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Georgia"&gt;&lt;span style="color:#333333"&gt;&lt;strong&gt;First Time Users:&lt;/strong&gt; 
&lt;br /&gt;
To save time before the meeting, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=90703" /&gt;&lt;/span&gt;check
your system&lt;span style="color:#333333"&gt; to make sure it is ready to use Microsoft
Office Live Meeting. 
&lt;br /&gt;
&lt;strong&gt;Notes&lt;/strong&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt; 
&lt;br /&gt;
Unable to join the meeting? Follow these steps: &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Georgia"&gt;&lt;span style="color:#333333"&gt;1. Copy this address
and paste it into your web browser: 
&lt;br /&gt;
&lt;a href="https://www.livemeeting.com/cc/mvp/join" /&gt;&lt;/span&gt;https://www.livemeeting.com/cc/mvp/join&lt;span style="color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Georgia"&gt;&lt;span style="color:#333333"&gt;2. Copy and paste the
required information: 
&lt;br /&gt;
Meeting ID: PR7D6Z 
&lt;br /&gt;
Entry Code: A5128ML0Y0D 
&lt;br /&gt;
Location: &lt;a href="https://www.livemeeting.com/cc/mvp" /&gt;&lt;/span&gt;https://www.livemeeting.com/cc/mvp&lt;span style="color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family:Georgia"&gt;&lt;span style="color:#333333"&gt;If you still cannot
enter the meeting, &lt;a href="http://r.office.microsoft.com/r/rlidLiveMeeting?p1=12&amp;amp;p2=en_US&amp;amp;p3=LMInfo&amp;amp;p4=support" /&gt;&lt;/span&gt;contact
support&lt;span style="color:#333333"&gt; &lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;&lt;strong&gt;Note&lt;/strong&gt; &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color:#333333; font-family:Georgia"&gt;Microsoft Office Live Meeting can
be used to record meetings. By participating in this meeting, you agree that your
communications may be monitored or recorded at any time during the meeting. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Sayed Ibrahim Hashimi 
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,9e1fdde2-eb09-4647-9aad-2190fbdfbb2f.aspx</comments>
      <category>Deployment</category>
      <category>LiveMeeting</category>
      <category>MSDeploy</category>
      <category>Video</category>
    </item>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=1dfa4394-990b-4fcc-b483-467a6614fd92</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,1dfa4394-990b-4fcc-b483-467a6614fd92.aspx</pingback:target>
      <dc:creator>Ibrahim</dc:creator>
      <wfw:comment>http://sedodream.com/CommentView,guid,1dfa4394-990b-4fcc-b483-467a6614fd92.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=1dfa4394-990b-4fcc-b483-467a6614fd92</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
On Friday August 28 and Saturday August 29 there will be a conference in St. Louis
called <a href="http://www.stlouisdayofdotnet.com/">St. Louis Day of .NET</a> that
I will be speaking at. Here is the outline 
</p>
        <blockquote>
          <p>
            <span style="text-decoration:underline">
              <strong>Simplify build and deployment of ASP.NET
sites with Web Deployment Projects </strong>
            </span>
          </p>
        </blockquote>
        <blockquote>
          <p>
When you are creating ASP.NET sites, (either ASP.NET web site / ASP.NET Web Project
/ ASP.NET MVC Project / etc) you will need to deploy the site to machines which will
host them. Classically there were two options; xcopy the actual source to the live
server and let them be compiled on demand or you could use the aspnet_compiler.exe
and aspnet_merge.exe tools to pre-compile the website for you. The little known, yet
extremely useful, Web Deployment Projects (an add on for Visual Studio) can greatly
simplify the process of build and deployment. Web Deployment Projects will take care
of the complexities of the aspnet_compiler.exe and the aspnet_merge.exe tool for you
by way of a tight UI integration into Visual Studio itself. Aslo Web Deployment Projects
are MSBuild files so you can extend and customize the process to suit your exact needs.
In this session we will introduce Web Deployment Project, show that you can perform
very powerful actions without writing a single line of code (or even text)! We will
also dive into the MSBuild file that is the Web Deployment Project and show how to
customize the process. 
</p>
        </blockquote>
        <p>
This session talks about <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;displaylang=en">Web
Deployment Projects</a> (<a href="http://msdn.microsoft.com/en-us/asp.net/aa336619.aspx">2005
version</a>) and how they can help in the build and deployment process. If you are
going to be attending and interested in build and deployment of ASP.NET web sites
and projects then you don't want to miss this session. 
</p>
        <p>
Sayed Ibrahim Hashimi
</p>
      </body>
      <title>Speaking at St. Louis Day of .NET</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,1dfa4394-990b-4fcc-b483-467a6614fd92.aspx</guid>
      <link>http://sedodream.com/2009/08/26/SpeakingAtStLouisDayOfNET.aspx</link>
      <pubDate>Wed, 26 Aug 2009 03:19:16 GMT</pubDate>
      <description>&lt;p&gt;
On Friday August 28 and Saturday August 29 there will be a conference in St. Louis
called &lt;a href="http://www.stlouisdayofdotnet.com/"&gt;St. Louis Day of .NET&lt;/a&gt; that
I will be speaking at. Here is the outline 
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;
&lt;span style="text-decoration:underline"&gt;&lt;strong&gt;Simplify build and deployment of ASP.NET
sites with Web Deployment Projects &lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/blockquote&gt;&lt;blockquote&gt;
&lt;p&gt;
When you are creating ASP.NET sites, (either ASP.NET web site / ASP.NET Web Project
/ ASP.NET MVC Project / etc) you will need to deploy the site to machines which will
host them. Classically there were two options; xcopy the actual source to the live
server and let them be compiled on demand or you could use the aspnet_compiler.exe
and aspnet_merge.exe tools to pre-compile the website for you. The little known, yet
extremely useful, Web Deployment Projects (an add on for Visual Studio) can greatly
simplify the process of build and deployment. Web Deployment Projects will take care
of the complexities of the aspnet_compiler.exe and the aspnet_merge.exe tool for you
by way of a tight UI integration into Visual Studio itself. Aslo Web Deployment Projects
are MSBuild files so you can extend and customize the process to suit your exact needs.
In this session we will introduce Web Deployment Project, show that you can perform
very powerful actions without writing a single line of code (or even text)! We will
also dive into the MSBuild file that is the Web Deployment Project and show how to
customize the process. 
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
This session talks about &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&amp;amp;displaylang=en"&gt;Web
Deployment Projects&lt;/a&gt; (&lt;a href="http://msdn.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;2005
version&lt;/a&gt;) and how they can help in the build and deployment process. If you are
going to be attending and interested in build and deployment of ASP.NET web sites
and projects then you don't want to miss this session. 
&lt;/p&gt;
&lt;p&gt;
Sayed Ibrahim Hashimi
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,1dfa4394-990b-4fcc-b483-467a6614fd92.aspx</comments>
      <category>Deployment</category>
      <category>msbuild</category>
      <category>speaking</category>
      <category>Web Deployment Projects</category>
    </item>
  </channel>
</rss>