Sorry, my mistake, the C:\Program Files\... path I quoted was incorrect. I transposed it (badly) from the messagebox that came up. I apologise!
Here is the Event log entry:
Failed to register or unregister application due to
"System.ApplicationException: Failed to save application configuration from "C:\ProgramData\UltiDev\WebServer\UWS.Configuration.xml". Error: The process cannot access the file 'C:\ProgramData\UltiDev\WebServer\UWS.Configuration.xml' because it is being used by another process. ---> System.IO.IOException: The process cannot access the file 'C:\ProgramData\UltiDev\WebServer\UWS.Configuration.xml' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.IO.File.Open(String path, FileMode mode, FileAccess access)
at UltiDev.Framework.XmlSerializationHelper.XmlSerializeToFile(Object data, String filePath)
at UWS.Configuration.Metabase.SaveMetabase(MetabaseSerializationHelper mb)
--- End of inner exception stack trace ---
at UWS.Configuration.Metabase.SaveMetabase(MetabaseSerializationHelper mb)
at UWS.Configuration.Metabase.RegisterApplicationInternal(HostProcessConfigEntry hostProcess, WebAppConfigEntry application, ICollection`1 shortcuts)
at UWS.Configuration.Metabase.RegisterApplicationWith(HostProcessClrAndBitness hostType, Boolean useDefaultSharedHostProcess, ProcessIdentity processIdentity, WebAppConfigEntry application, ICollection`1 shortcuts)
at UWS.Configuration.Metabase.RegisterApplication(RuntimeVersion aspNetVersion, Boolean run32bitOnx64, Boolean useDefaultSharedHostProcess, ProcessIdentity processIdentity, WebAppConfigEntry application, ICollection`1 shortcuts)
at UWS.RegApp.Program.DoIt(Dictionary`2& pBag)
at UWS.RegApp.Program.Main(String[] args)".
Command line:
"C:\Program Files (x86)\UltiDev\Web Server\UWS.RegApp.exe" /r /AppID={AC93FAEA-0192-4D52-861A-A91F664FA3FB} /aspnet:4 /vdir:WS "/path:C:\Program Files\ACHS\EAT5_NS\\EAT5_NS\WS"
The parameters for Starter.exe I use in the custom action are:
"[ProgramFilesFolder]\UltiDev\Web Server\UWS.RegApp.exe" /r /AppID="{AC93FAEA-0192-4D52-861A-A91F664FA3FB}" /aspnet:4 /vdir:WS /path:"[TARGETDIR]\EAT5_NS\WS"
It seems a bit strange that the Event viewer command line ends up with a double backslash in it, but as stated earlier this application registers perfectly if I run a repair after the initial installation, so this seems unlikely to be a significant issue.