I have an Inno Setup script that I have been using successfully for nearly a year. I am trying to include language support for Japanese, but I am encountering a problem.
My original script (English only) works just fine, even on the Japanese versions of Windows 7. When I include a [Languages] section in my script, with a choice of English or Japanese, items that are supposed to be written to the registry that include the {userdocs} constant are quietly skipped. Files to be installed that include {userdocs} in the installation path are also skipped, yet Inno-Setup gives no messages.
Here is some relevant code from my installer:
Source: "C:\Users\Anon\Documents\Visual Studio 2010\Projects\Myprog\Release\Myprog.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.MFC\mfc100.dll"; DestDir: "{app}";
Source: "C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.MFC\mfc100u.dll"; DestDir: "{app}";
Source: "C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcr100.dll"; DestDir: "{app}";
Source: "C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcp100.dll"; DestDir: "{app}";
Source: "Myprog.pdf"; DestDir: "{userdocs}\Myprog\Docs";
Source: "Myprog(Japanese).pdf"; DestDir: "{userdocs}\Myprog\Docs";
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
//[Languages]
//Name: "english"; MessagesFile: "compiler:Default.isl"
//Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
Root: HKLM; Subkey: "Software\MyCompany\Myprog\V4"; ValueType: string; ValueName: "Docpath"; ValueData: "{userdocs}\Myprog\Docs"; Permissions : users-modify; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\MyCompany\Myprog\V4"; ValueType: string; ValueName: "Regpath"; ValueData: "{userdocs}\Myprog"; Permissions : users-modify; Flags: uninsdeletekey
Root: HKLM; Subkey: "Software\MyCompany\Myprog"; ValueType: string; ValueName: "Serial"; ValueData: "{userinfoserial}"; Permissions : users-read; Flags: uninsdeletekey
If I leave the [Languages] section commented out as it is shown here, the installer works fine on Windows, when the system display language is "English" or "Japanese".
However, if I uncomment the [Languages] section, the installer still runs to completion without complaint, but does not make the registry entries for "Docpath" and "Regpath", and it does not install the two PDF files the script names.
The installed program works just fine as well, except that it is unable to locate its documentation or personalization data, as it depends on those registry entries to find those data.
The only difference in the two cases is whether the [Languages] section is commented out or not. It makes no difference whether the operating system's display language is set to English or Japanese.
Does anyone have a clue what's going on?
reg query
to dump the relevant registry sections, and the Docpath and Regpath entries are simply missing. Same process on same machine with installer built with no [Languages] section has clearly visible entries of those items. – Logicrat/LOG
the setup to see if there's not something suspicious ? I'm quite out of ideas why would it fail (and don't have Japanese Windows). – TLama