<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

<channel>
	<title>Planet Stratos - Grupos</title>
	<link>http://www.inmensia.com/planet/stratos-ad/</link>
	<language>en</language>
	<description>Planet Stratos - http://www.inmensia.com/planet/stratos-ad/</description>














	<item>
		<title>Quoders: There's always room for one more!</title>
		<guid>http://www.quoders.com/1/post/2012/01/theres-always-room-for-one-more.html</guid>
		<link>http://www.quoders.com/1/post/2012/01/theres-always-room-for-one-more.html</link>
		
	    <description>We have a new colleague onboard. He is A [...]</description>
		
		<category domain="http://www.inmensia.com/planet/stratos-ad">VideoJuegos</category>
		<category domain="http://www.inmensia.com/planet/stratos-ad">Juegos</category>
		
		<pubDate>Mon, 23 Jan 2012 20:29:44 +0000</pubDate>
	</item>




	<item>
		<title>Jad Engine: Changing jobs</title>
		<guid>http://feedproxy.google.com/~r/JadEngineBlog/~3/BdqXTfFghlY/changing-jobs.aspx</guid>
		<link>http://feedproxy.google.com/~r/JadEngineBlog/~3/BdqXTfFghlY/changing-jobs.aspx</link>
		
	    <description>&lt;p&gt;So, yesterday was my last day at &lt;a href=&quot;http://www.ctech.com/&quot;&gt;C Tech Development Corporation&lt;/a&gt;. It was my last day as a freelancer too. These last three years have been a great learning experience, and I feel I have grown quite a lot as a developer.&lt;/p&gt;  &lt;p&gt;I landed the job thanks to my work in the old &lt;a href=&quot;http://jadengine.codeplex.com/&quot;&gt;Jad Engine&lt;/a&gt;, where I met Reed and Bengt, and I honestly think I have been very lucky to be working with them, along Adam and Devlin. They are very talented devs, and I have learned from each of them as much as I have been able. I am proud also of the product we have been build during this time: &lt;a href=&quot;http://entervol.com/&quot;&gt;EnterVol&lt;/a&gt;, an ArcGIS plugin that adds volumetric analysis of chemistry/geology data. Internally EnterVol is a really interesting piece of software, using WPF, WCF, TPL,... It is rather complicated, but also full of very elegant design decisions and code. I really hope it brings lots of new customers to C Tech, they deserve it :)&lt;/p&gt;  &lt;p&gt;I want to give a special mention to Reed, my boss. &lt;a href=&quot;http://reedcopsey.com/&quot;&gt;Reed Copsey&lt;/a&gt; is a Microsoft MVP in C#, maybe not as known as other famous people on that area, but he is one of the best (you can check Stack Overflow and see him in the &lt;a href=&quot;http://stackoverflow.com/users?tab=reputation&amp;filter=all&quot;&gt;first page&lt;/a&gt; of top users ;) Not only he is an outstanding developer, capable of facing any problem you throw at him (seriously, he can jump from DB, to graphics, to algorithms, to WCF, and not even blink), he has been also an outstanding boss. He has lead the team carefully, dividing the job, keeping an eye on us, helping when needed, and he has been more than understanding with some cultural differences that exist between Spain and USA, specially regarding holidays. Given how hard is to find a good boss, I really appreciate this.&lt;/p&gt;  &lt;p&gt;And for the future? Well, I am moving to &lt;a href=&quot;http://plainconcepts.es/&quot;&gt;Plain Concepts&lt;/a&gt;, a Spanish Microsoft partner. I am very happy of this for several reasons. First and mostly, because of the people: I know quite a lot of people in the company from old jobs, Microsoft events,… It is always nice to work with people you know you already get along well, and even nicer when they are technical leaders in their fields. I hope I’ll learn quite a few new things from all of them. Oh, and the company average age is quite young too :)&lt;/p&gt;  &lt;p&gt;Second, because Plain Concepts has just started developing games, via &lt;a href=&quot;http://www.weekendgamestudio.com/&quot;&gt;Weekend Game Studio&lt;/a&gt;. They have already released two games and are developing their own multiplatform game engine called Wave (which powers Bye Bye Brain). Wave is mostly the work of two people, one if them is Javier Canton, another fellow Spanish XNA/DX MVP. I really look forward working with them on the engine and improving it in the future. And releasing quite a few games :)&lt;/p&gt;  &lt;p&gt;And third, because I’ll be moving to their Seattle office (if I get the visa, come on immigration), which is a huge change for me. I needed to get out of my comfort zone a little, and I wanted a change after been working so long remotely at home, and this achieves it by long. It also allows me to experience what it means to live abroad for a long time, something I’m very curious to discover.&lt;/p&gt;  &lt;p&gt;So, one path ends, and another starts, I am really eager to discover how this new part of my life and professional career will develop.&lt;/p&gt;
&lt;div id=&quot;postorigin&quot;&gt;&lt;a href=&quot;http://kartones.net/blogs/jadengine/archive/2012/01/21/changing-jobs.aspx&quot;&gt;Changing jobs&lt;/a&gt; was posted the 01/21/2012 at &lt;a href=&quot;http://Kartones.net&quot;&gt;Kartones.Net&lt;/a&gt;.&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JadEngineBlog/~4/BdqXTfFghlY&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
		
		<category domain="http://www.inmensia.com/planet/stratos-ad">VideoJuegos</category>
		<category domain="http://www.inmensia.com/planet/stratos-ad">Juegos</category>
		
		<pubDate>Sat, 21 Jan 2012 22:36:58 +0000</pubDate>
		<dc:creator>Vicente</dc:creator>
	</item>









	<item>
		<title>Jad Engine: Writing an installer for a desktop LightSwitch application</title>
		<guid>http://feedproxy.google.com/~r/JadEngineBlog/~3/_XfS0DDvVJc/writing-an-installer-for-a-desktop-lightswitch-application.aspx</guid>
		<link>http://feedproxy.google.com/~r/JadEngineBlog/~3/_XfS0DDvVJc/writing-an-installer-for-a-desktop-lightswitch-application.aspx</link>
		
	    <description>&lt;p&gt;Lately in my free time I have been developing a small &lt;a href=&quot;http://www.microsoft.com/visualstudio/en-us/lightswitch&quot;&gt;LightSwitch&lt;/a&gt; application to manage roleplaying games of &lt;a href=&quot;http://en.wikipedia.org/wiki/Birthright_(campaign_setting)&quot;&gt;Birthright&lt;/a&gt;. Birthright is like Dungeons &amp;amp; Dragons meets Civilization, a mix of RPG and grand strategy. The problem is that the strategy part has so much accounting that usually you need a computer to handle it (specially if you have 50 or more players, which is common in play by email games).&lt;/p&gt;  &lt;p&gt;I have always had the idea of doing a tool for Birthright, but doing it the “traditional way” (ASP.NET or WPF/MVVM, WCF, EF) was too time consuming. Then I discovered LightSwitch and I was amazed how fast it was for simple CRUD applications. And it also allowed me to do a desktop tool or a web based tool (very interesting as lots of games are played using forums).&lt;/p&gt;  &lt;p&gt;I was all happy, developing my tool, testing it internally, and then one day, I hit the point where I could show it to other people.&lt;/p&gt;  &lt;p&gt;And nightmares began: allowing other (non-dev) people to test the tool was a total mess. LightSwitch is not really thought for this scenario (my bad for not checking it earlier), and it assumes for a desktop tool that the person installing has access to the target machine (you need to install and configure a SQL Server…).&lt;/p&gt;  &lt;p&gt;I went to the MSDN forums for help, but I found very little help : make your own installer. Great, I had already seen that one coming :p&lt;/p&gt;  &lt;p&gt;So, I sit down to make my own installer. First, I run a Virtual Machine in another computer and I try to install the tool by hand, to see the steps involved on this. I spend nearly a whole day fighting with this, partly because LightSwitch install instructions are pretty useless, and partly because I knew very little about deploying SQL Server. But I manage to figure it out.&lt;/p&gt;  &lt;p&gt;Then, I start writing the installer. Writing installers is boring, hard, and in general a totally forgettable experience, but we are lucky there are tools to help for this, and the best one in my opinion is &lt;a href=&quot;http://www.advancedinstaller.com/&quot;&gt;Advanced Installer&lt;/a&gt; by Caphyon (disclaimer: I have a NFR license for it because of my Microsoft MVP).&lt;/p&gt;  &lt;p&gt;The following steps are what was needed to deploy my LightSwitch application using Advanced Installer, although the idea is the same no matter what tool you use.&lt;/p&gt;  &lt;h3&gt;Installing Prerequisistes&lt;/h3&gt;  &lt;p&gt;First, you need your installer to install some prerequisites. I was doing my tests on a Windows 7 x64 VM, so my list was:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.NET 4.0 Framework. I have set it to download in case it is not present on the target machine. The url to download is: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a title=&quot;http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe&quot; href=&quot;http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe&quot;&gt;http://download.microsoft.com/download/1/B/E/1BE39E79-7E39-46A3-96FF-047F95396215/dotNetFx40_Full_setup.exe&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And the registry key to check is:&lt;/p&gt;  &lt;p&gt;HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Install (value = 1)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server 2008 R2 Express. The database used by the application. I decided to bundle it in the application as I was assuming most normal users wouldn’t have it installed already. I chose 2008 R2 because it has a 10GB limit instead of the 4GB limit of the earlier Express editions. At this point, I decide to do two installers, one for x86 and another for x64, so I get the correct versions and bundle them. The key to check, according to the MSDN forums is: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion\CurrentVersion (value 10.50)&lt;/p&gt;  &lt;p&gt;Although I’m not very sure about this, registry keys and SQL Server are a total mess :(&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight 5. This one is strange, it’s not marked as a requisite by LightSwitch itself, but LightSwitch applications are Silverlight applications so they can’t run without it. There are x86 and x64 versions too, and I decide to bundle them in the installer (as I can’t find a good direct download link). And the registry key is: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;HKLM\SOFTWARE\Microsoft\Silverlight\Version (value 5.0)&lt;/p&gt;  &lt;p&gt;This look fine at first glance (it did to me!), but there are two (big) problems here.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight 5 x64 does not work on Windows Vista x64, you need to install Silverlight 5 x86. Color me surprised about this. &lt;/li&gt;    &lt;li&gt;SQL Server 2008 R2 Express requires Windows Installer 4.5 which in my tests is installed into Windows Vista and Windows 7, but not in Windows XP (and probably not in WS 2003). The package to install is different in Windows XP x86 and Windows XP x64. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So, I decide that I will go with only one installer and that I will install Silverlight x86, SQL Server x86, and I’ll bundle also Windows Installer 4.5 for XP x86 (sorry XP x64, no love for you).&lt;/p&gt;  &lt;h3&gt;SQL Server 2008 R2 Express and Silent installs&lt;/h3&gt;  &lt;p&gt;The SQL Server 2008 R2 Express requires a few careful decisions. In this case, it requires using the default name instance (SQLExpress), and Mixed Mode authentication. It’s easy to choose that in the screens, but I was aiming to make something simple as my end users are not technical people, so this was a problem. It was also a problem that the requisites would pop up windows left and right asking the user for his input.&lt;/p&gt;  &lt;p&gt;So I decided to install all of them silently. I used the following switches:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For Windows Installer 4.5: /q &lt;/li&gt;    &lt;li&gt;For .NET Framework 4.0: /passive &lt;/li&gt;    &lt;li&gt;For Silverlight 5: /q &lt;/li&gt;    &lt;li&gt;For SQL Server: this one is nastier, as I want it to make also the decisions about the instance name, the authentication,… The command is: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;/QS /ACTION=&amp;quot;Install&amp;quot; /IACCEPTSQLSERVERLICENSETERMS=true /FEATURES=SQLENGINE /INSTANCENAME=SQLEXPRESS /SECURITYMODE=SQL /SAPWD=password /ADDCURRENTUSERASSQLADMIN=true /SQLSVCACCOUNT=&amp;quot;NT AUTHORITY\NETWORK SERVICE&amp;quot;&lt;/p&gt;  &lt;h3&gt;Copying Files&lt;/h3&gt;  &lt;p&gt;This part is the simplest one, the installer only needs to copy some of the files generated by the Publish action of LightSwitch into the target machine. Just copy the setup.exe, YourApplication.application, and the whole “Application Files” folder.&lt;/p&gt;  &lt;p&gt;You can also create a shortcut to the .application file in the desktop (LightSwitch will only create in the Windows start menu).&lt;/p&gt;  &lt;h3&gt;Final Configuration&lt;/h3&gt;  &lt;p&gt;Finally, the application needs to do a few things.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First, create the database. When you publish in LightSwitch it generates a SQL script for you to generate the DB, just run it with something like this in your installer: &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;quot;[ProgramFilesFolder]\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE&amp;quot; -i &amp;quot;[#database.sql]&amp;quot; -S .\SQLExpress&lt;/p&gt;  &lt;p&gt;This script gives some warnings in the end, but as far as I know, it doesn’t matter.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create the database administrator. I use forms authentication for my app, so I need to generate a SQL administrator for my created database so the app can connect to it. Luckily, LightSwitch generates also this .sql script for you. Unluckily, the script is wrong. Your script will look something like this: &lt;/li&gt; &lt;/ul&gt;  &lt;div class=&quot;csharpcode&quot;&gt;   &lt;pre class=&quot;alt&quot;&gt;:setvar DatabaseName &amp;quot;MyDatabase&amp;quot;&lt;/pre&gt;

  &lt;pre&gt;:setvar DatabaseUserName &amp;quot;administrator&amp;quot;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;:setvar DatabaseUserPassword &amp;quot;password&amp;quot;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;USE&lt;/span&gt; [$(DatabaseName)]&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;DECLARE&lt;/span&gt; @usercount &lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;SELECT&lt;/span&gt; @usercount=&lt;span class=&quot;kwrd&quot;&gt;COUNT&lt;/span&gt;(name) &lt;span class=&quot;kwrd&quot;&gt;FROM&lt;/span&gt; sys.database_principals &lt;span class=&quot;kwrd&quot;&gt;WHERE&lt;/span&gt; name = &lt;span class=&quot;str&quot;&gt;'$(DatabaseUserName)'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;IF&lt;/span&gt; @usercount = 0&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;    &lt;span class=&quot;kwrd&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;USER&lt;/span&gt; $(DatabaseUserName) &lt;span class=&quot;kwrd&quot;&gt;FOR&lt;/span&gt; LOGIN $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember db_datareader, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember db_datawriter, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Membership_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Roles_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Profile_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&amp;#160;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;But that will not work, as there is no SQL login associated to “administrator”. The correct script is:&lt;/p&gt;

&lt;div class=&quot;csharpcode&quot;&gt;
  &lt;pre class=&quot;alt&quot;&gt;:setvar DatabaseName &amp;quot;MyDatabase&amp;quot;&lt;/pre&gt;

  &lt;pre&gt;:setvar DatabaseUserName &amp;quot;administrator&amp;quot;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;:setvar DatabaseUserPassword &amp;quot;password&amp;quot;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;CREATE&lt;/span&gt; LOGIN $(DatabaseUserName) &lt;span class=&quot;kwrd&quot;&gt;WITH&lt;/span&gt; PASSWORD = &lt;span class=&quot;str&quot;&gt;'$(DatabaseUserPassword)'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;,DEFAULT_DATABASE = [$(DatabaseName)]&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;USE&lt;/span&gt; [$(DatabaseName)]&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;DECLARE&lt;/span&gt; @usercount &lt;span class=&quot;kwrd&quot;&gt;int&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;SELECT&lt;/span&gt; @usercount=&lt;span class=&quot;kwrd&quot;&gt;COUNT&lt;/span&gt;(name) &lt;span class=&quot;kwrd&quot;&gt;FROM&lt;/span&gt; sys.database_principals &lt;span class=&quot;kwrd&quot;&gt;WHERE&lt;/span&gt; name = &lt;span class=&quot;str&quot;&gt;'$(DatabaseUserName)'&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;IF&lt;/span&gt; @usercount = 0&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;    &lt;span class=&quot;kwrd&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;kwrd&quot;&gt;USER&lt;/span&gt; $(DatabaseUserName) &lt;span class=&quot;kwrd&quot;&gt;FOR&lt;/span&gt; LOGIN $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember db_datareader, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember db_datawriter, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Membership_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Roles_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class=&quot;kwrd&quot;&gt;EXEC&lt;/span&gt; sp_addrolemember aspnet_Profile_FullAccess, $(DatabaseUserName)&lt;/pre&gt;

  &lt;pre class=&quot;alt&quot;&gt;&lt;span class=&quot;kwrd&quot;&gt;GO&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;pre&gt;&lt;font&gt;You can run this script with the following line within the installer:&lt;/font&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;font&gt;&amp;quot;[ProgramFilesFolder]\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE&amp;quot; -i &amp;quot;[#CreateUser.sql]&amp;quot; -S .\SQLExpress&lt;/font&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Create the application administrator: you have to create an initial user that can connect to the application and has security administration rights so he can do the initial configuration. The command line for this is:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Microsoft.LightSwitch.SecurityAdmin.exe /createadmin /user:Administrator /password:lalala_1 /fullusername:Admin /config:&amp;quot;../web.config&amp;quot;
  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;So the installer also needs to copy the Microsoft.LightSwith.SecurityAdmin.exe file. Which needs a ton of DLLs to run. But luckily, they are all inside the “Application Files/Bin” folder which got copied by the installer earlier. So I just copy this file too and run the command from there (also, that’s why the path to the web.config is ../web.config, as it sits in the “Application Files” folder).&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Run setup.exe. This is the ClickOnce installer generated by LightSwitch when you click publish, run it and the app will finish the installation and run.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After all of that, I got an installer that would get my application into the users target machine with minimum issues for them. And testing shows it works quite well.&lt;/p&gt;

&lt;p&gt;Well, except one strange issue: if the application is installed in a path with the char ‘&amp;amp;’ the application will fail to launch. The issue was reported in 2008 (&lt;a href=&quot;http://blogs.msdn.com/b/gauravb/archive/2008/12/02/clickonce-application-does-not-install-when-the-deployment-path-includes-ampersands.aspx&quot;&gt;http://blogs.msdn.com/b/gauravb/archive/2008/12/02/clickonce-application-does-not-install-when-the-deployment-path-includes-ampersands.aspx&lt;/a&gt;) and I suppose it was deemed not important enough to fix it, with it’s more or less right, except if you are developing an application for ‘Dungeons &lt;strong&gt;&amp;amp;&lt;/strong&gt; Dragons’ like I am…&lt;/p&gt;
&lt;div id=&quot;postorigin&quot;&gt;&lt;a href=&quot;http://kartones.net/blogs/jadengine/archive/2012/01/14/writing-an-installer-for-a-desktop-lightswitch-application.aspx&quot;&gt;Writing an installer for a desktop LightSwitch application&lt;/a&gt; was posted the 01/14/2012 at &lt;a href=&quot;http://Kartones.net&quot;&gt;Kartones.Net&lt;/a&gt;.&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/JadEngineBlog/~4/_XfS0DDvVJc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
		
		<category domain="http://www.inmensia.com/planet/stratos-ad">VideoJuegos</category>
		<category domain="http://www.inmensia.com/planet/stratos-ad">Juegos</category>
		
		<pubDate>Sat, 14 Jan 2012 13:23:45 +0000</pubDate>
		<dc:creator>Vicente</dc:creator>
	</item>




























</channel>
</rss>

