http://bugs.winehq.org/show_bug.cgi?id=12414
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #4 from Anastasius Focht focht@gmx.net 2008-12-20 12:39:07 --- Hello,
there are several bugs in the installer and wine/winetricks that makes me wonder how you consider this thing "installed" without mentioning any errors encountered.
Download: http://nikonusa.com/software/NX/1.3/win/CNX130NSAEN.EXE
$ sha1sum CNX130NSAEN.EXE -> f31b38e3bcca17c8050c207b79315c9be23d582d
Although not critical, I filed a separate bug 16577 for the first installer problem because it highlights an important issue.
With 'sh winetricks vcrun2005sp1 dotnet20', the prerequisite installer proceeds and comes to point where it compiles some .NET assemblies to native images (pre-JIT).
Unfortunately the writer of the installer messed this also up. Only god knows why the installer ships its own version of ngen.exe for compiling assemblies. This shipped ngen.exe is actually a copy of the original binary from .NET 1.1 Framework ngen.exe
--- snip --- 002e:trace:process:CreateProcessW app (null) cmdline L"ngen.exe /silent NxCursors.dll" ... 002e:trace:process:CreateProcessW app (null) cmdline L"ngen.exe /silent nik.GUIBase.dll" ... --- snip ---
Now guess what happens when the shipped ngen.exe is run:
"To run this application, you first must install one of the following versions of the .NET framework: v1.1.4322".
Of course - it binds by default to .NET 1.1 core (if not told otherwise, see later workaround).
Why on earth do they ship v1.1 ngen.exe to JIT their .NET 2.0 assemblies when .NET 2.0 Framework already has the correct ngen.exe for this task???
If the pre-JIT step succeeds the shipped "C:\Program Files\Nikon\Capture NX\ngen.exe" is silently deleted.
Now one has following options: install .NET 1.1 Framework to get this braindamage to work or use the following workaround:
Either by placing the following key/value in registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\OnlyUseLatestCLR=dword:00000001
or use environment variable
COMPLUS_OnlyUseLatestCLR=1
before starting the installer. This forces the shipped v1.1 ngen.exe to use the .NET 2.0, succeeding in compilation of assemblies.
Be aware if you go the .NET 1.1 Framework installation route you *must* install .NET 1.1 before .NET 2.0 - both using winetricks.
Something like: 'sh winetricks vcrun2005sp1 dotnet11 dotnet20'
But this currently won't succeed due to bug 12099 (.NET 2.0 installer will hang in the end).
--- snip --- .. trace:process:CreateProcessW app (null) cmdline L"C:\windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -iru" ... trace:process:CreateProcessW started process pid 0067 tid 0068 ... fixme:advapi:RegisterEventSourceW ((null),L"ASP.NET 2.0.50727.0"): stub fixme:advapi:ReportEventW (0xcafe4242,0x0004,0x0001,0x400003f9,(nil),0x0002,0x00000000,0x33ed74,(nil)): stub fixme:advapi:DeregisterEventSource (0xcafe4242) stub err:ole:CoGetClassObject class {a9e69610-b80d-11d0-b9b9-00a0c922e750} not registered err:ole:CoGetClassObject class {a9e69610-b80d-11d0-b9b9-00a0c922e750} not registered err:ole:create_server class {a9e69610-b80d-11d0-b9b9-00a0c922e750} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {a9e69610-b80d-11d0-b9b9-00a0c922e750} could be created for context 0x17 wine: Unhandled exception 0xc06d007e at address 0x7b844dc0 (thread 0068), starting debugger... --- snip ---
Use the COMPLUS_OnlyUseLatestCLR=1 environment variable workaround for now.
After this mess is passed, it starts the final "Capture NX" installer which ends up in bug 15887
--- snip --- err:msi:msi_cabextract FDICopy failed err:msi:ACTION_InstallFiles Failed to extract cabinet: L"Captur~1.cab" err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1627 ... err:msi:msi_cabextract FDICopy failed err:msi:ACTION_InstallFiles Failed to extract cabinet: L"#Data1.cab" err:msi:ITERATE_Actions Execution halted, action L"InstallFinalize" returned 1627 fixme:shell:DllCanUnloadNow stub --- snip ---
Although it seems that most of the stuff got installed, I wouldn't make any bet that this thing works 100%.
Regards