<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SharePoint Fun &#187; WSP</title>
	<atom:link href="http://blog.qumsieh.ca/tag/wsp/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.qumsieh.ca</link>
	<description>Developer's blog related to ASP.NET, SharePoint and Telerik Web Controls</description>
	<lastBuildDate>Wed, 01 Sep 2010 17:47:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Creating an MSI Package for a WSP File in Visual Studio</title>
		<link>http://blog.qumsieh.ca/2008/01/19/creating-an-msi-package-for-a-sharepoint-wsp-file/</link>
		<comments>http://blog.qumsieh.ca/2008/01/19/creating-an-msi-package-for-a-sharepoint-wsp-file/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 23:22:03 +0000</pubDate>
		<dc:creator>shereen</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[SharePoint 2007]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WSP]]></category>

		<guid isPermaLink="false">http://blog.qumsieh.ca/?p=3</guid>
		<description><![CDATA[For anyone designing SharePoint Solution Packages (wsp files), typical deployment means either running stsadm commands to add a solution and then deploy it, or automating it via a script. However, if you&#8217;re building solutions that will be installed or administered by a client or a user not familiar with the stsadm command, then you&#8217;ll want [...]]]></description>
			<content:encoded><![CDATA[<p>For anyone designing SharePoint Solution Packages (wsp files), typical deployment means either running stsadm commands to add a solution and then deploy it, or automating it via a script. However, if you&#8217;re building solutions that will be installed or administered by a client or a user not familiar with the stsadm command, then you&#8217;ll want to create something a little more user friendly.</p>
<p>That&#8217;s where MSI packaging can help. MSI packages also show up in add/remove programs and that makes it easier to manage for the end user.  What i&#8217;ll outline in this blog post is some simple steps to get you going on creating MSI packages for sharepoint solutions files. To begin, i&#8217;ll assume you have already created a solution file and have it ready to go.</p>
<ol>
<li>Create a new Setup project: <em>File</em> -&gt; <em>New</em>-&gt; <em>Project</em> -&gt; <em>Other Project Types</em> -&gt; <em>Setup and Deployment</em> -&gt; <em>Setup Project<br />
</em><a href="http://blog.qumsieh.ca/wp-content/uploads/2008/12/picture_1.png"><img class="alignnone size-medium wp-image-57" title="picture_1" src="http://blog.qumsieh.ca/wp-content/uploads/2008/12/picture_1-300x203.png" alt="" width="300" height="203" /></a></li>
<li>Highlight the project and using the toolbar on the Solution explorer pane, select the <em>User Interface Editor</em></li>
<li>Configure the UI screens as you require</li>
<li>On that same Solution Explorer pane, select the <em>Custom Actions Editor</em> and add the scripts below to the Install and Uninstall folders</li>
<li>Using the File System Editor, add the wsp and license file to the Application Folder for use within the scripts below</li>
<li>Building the solution will generate an msi file that you can now use to install your wsp. The msi will include all the necessary files, such as the license file, the wsp and the install scripts.</li>
</ol>
<p><strong>AddSolution.vbs</strong></p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #008000;">' VBScript File
</span>
<span style="color: #000080;">Set</span> oShell = CreateObject(<span style="color: #800000;">&quot;WScript.Shell&quot;</span>)
&nbsp;
<span style="color: #000080;">Dim</span> activationUrl <span style="color: #000080;">Dim</span> targetDir <span style="color: #000080;">Dim</span> installDir
&nbsp;
targetUrl = Session.<span style="color: #000080;">Property</span>(<span style="color: #800000;">&quot;CustomActionData&quot;</span>)
&nbsp;
installDir = Session.<span style="color: #000080;">Property</span>(<span style="color: #800000;">&quot;INSTALLDIR&quot;</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o addsolution -filename &quot;</span> + installDir + <span style="color: #800000;">&quot;\CurrentlyPublishedPage.wsp&quot;</span>, 0, <span style="color: #000080;">true</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o deploysolution -name CurrentlyPublishedPage.wsp -allcontenturls -immediate -allowGacDeployment&quot;</span>, 0, <span style="color: #000080;">true</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o execadmsvcjobs&quot;</span>, 0, <span style="color: #000080;">true</span>)
&nbsp;
activationUrl = <span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o activatefeature -filename CurrentlyPublishedPage\feature.xml -url &quot;</span> &amp;amp; targetUrl
&nbsp;
Return = oShell.Run(activationUrl, 0, <span style="color: #000080;">true</span>)</pre></div></div>

<p><strong>RetractSolution.vbs</strong></p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #008000;">' VBScript File
</span>
<span style="color: #000080;">Set</span> oShell = CreateObject(<span style="color: #800000;">&quot;WScript.Shell&quot;</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o retractsolution -name CurrentlyPublishedPage.wsp -allcontenturls -immediate&quot;</span>, 0, <span style="color: #000080;">true</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o execadmsvcjobs&quot;</span>, 0, <span style="color: #000080;">true</span>)
&nbsp;
Return = oShell.Run(<span style="color: #800000;">&quot;cmd /C C:\Progra~1\Common~1\Micros~1\webser~1\12\BIN\stsadm -o deletesolution -name CurrentlyPublishedPage.wsp&quot;</span>, 0, <span style="color: #000080;">true</span>)</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.qumsieh.ca/2008/01/19/creating-an-msi-package-for-a-sharepoint-wsp-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
