Tuesday, 12 June 2012

tools or utilities to edit Windows Installer msi files


  • Orca - part of Windows Installer SDK. Free
  • SuperOrca - from Pantaray Research. Free. Allows viewing \ editing binary tables along with other features not present in Orca.
  • InstEd - Free version. With InstEd Plus - Commercial version.

Thursday, 10 May 2012

WiX, Maximum recommended length of Tooltip attribute is 50 characters

When building an installer with WiX (Windows Installer XML) 3.5, you may encounter the following warning:


warning LGHT1076: ICE03: String overflow (greater than length permitted in column); Table: Control, Column: Help, Key(s): ....


This is because the Control@Tooltip value is too long. It stops giving out when the length is 50 characters or less.

Interesting fact that even with the warning, with string longer than 50, it still adds it to installer and uses the tooltip in UI.


Friday, 4 May 2012

asp.net PasswordRecovery control uses ControlState to persist data

Took me a while to figure out why PasswordRecovery control persisted its "Success" state between postbacks if MailError happened, even when EnableViewState="false"

One of its internal properties is CurrentView which can be UserName or Success. This property is not available for use and it is persisted between postbacks in the ControlState.

My problem was that the state of the control stayed as "Success" after I catched the smtp error in OnSendMailError handler by setting e.Handled = true.



Thursday, 3 May 2012

PhoneGap (Cordova), fail to navigate to index.html

Noticed when debugging Windows Phone 7.1 or 7.5 Mango app made with PhoneGap (Cordova) 1.6.1. The same may apply to earlier versions. Visual Studio 2010.

Error 1: fails to build with the following error


Arg :: path to project\MyProject.csproj
path to solution\ MyProject\BuildManifestProcessor.js(14, 1) Microsoft JScript runtime error : Permission denied
  
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1036,5): error MSB3073: The command "CScript "path to project\ MyProject\/BuildManifestProcessor.js" " path to project\ MyProject\ MyProject.csproj"" exited with code -1.

Reason: CordovaSourceDictionary.xml in the root of the project is read-only. Happened because it was included in the project and then added to source control.
Fix: Make sure that CordovaSourceDictionary.xml is not read-only before doing the build


The file CordovaSourceDictionary.xml  is dynamic, generated on each build by a pre-build event

However, if this file is excluded from the project, you will experience

Tuesday, 1 May 2012

Paste Special in Excel can be broken because of Skype

It appears that Skype Click-to-Call browser plugin somehow interferes with Microsoft Office applications ability to copy-paste. Some other application can be also affected. Paste Special in Excel 2007 \ Excel 2010 suffers most as it looses ability to paste formulas, can paste only text, it looks broken and not working.

Problem: in Excel worksheet, copy a cell with the formula either with Ctrl-C or right-click, copy. Paste into another cell. It pastes text only. copy again, right click on another cell, choose Paste Special - it offers to paste only plain text or unicode, no nice choice of formula, etc

Workaround: if you have Skype installed and any web browser is open - close the browser. May need to re-open Excel work sheet. If it doesn't help - disable or uninstall Skype Click-to-Call browser plugin

Skype confirmed the problem and said they are working on an update

Friday, 27 April 2012

How to change smtp server in TFS2008

Team Foundation Server 2008 is not the most user-friendly application to configure. Here is how to change the smtp server it is using for alerts and other outgoing emails

It is done by changing standard .Net smtp configuration section in the following files, change the host attribute on smtp/network node:

C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\web.config
C:\Program Files\Microsoft Visual Studio 2008 Team System Web Access\Web\web.config

<configuration>...  <system.net>    <mailSettings>      <smtp deliveryMethod="network" from="teamserver@mydomain.net">        <network host="my.mail.server" port="25" defaultCredentials="true" />      </smtp>    </mailSettings>  </system.net>

Couldn't start Default Web Site on Windows7. Solved

Problem:
You try to start Default Web Site in IIS Manager and it fails with the following error message:


The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)


Solution: 
If Skype is running - quit it. Then start the web site! Your Skype was listening on the port 80.

Hint:
Start the Default Web Site before starting Skype.

Happened to me on Windows7 64bit, IIS7, IIS7.5











Wednesday, 11 April 2012

Stress Analysis of a Software Project [long]

Found it on a Risks Digest and decided to copy the whole post here - just in case it goes missing. The posting is quite long. It is an internl Silicon Graphics memo by Tom Davis and it is a great representation of what can go wrong with (any) big (or small) software project

CITATION STARTS
Jerry Leichter <leichter@lrw.com>
Tue, 26 Apr 94 08:42:32 EDT
The following, which claims to be an internal Silicon Graphics memo, has
already seen fairly broad network distribution.  I have no way of verifying
that it is what it claims to be, but (a) I'm told by someone with close
dealings with SGI that it fits with what he's heard; (b) if it's a fake,
someone put a huge amount of effort into producing it.

I forward it to RISKS as a wonderful record of what goes wrong with large
software projects, and why.  It would be as useful if all the names, including
the company and product names, were removed.  This memo should not be seen as
an indictment of SGI, which is hardly unique.  There is good evidence that
Sun, for example, had very similar problems in producing Solaris; and I
watched the same thing happen with the late, unlamented DEC Professional
series of PC's, and something like it almost happen with firmware for DEC
terminals a number of years back.