|
Do you think makin a GitHub project will be a more collaborative solution to update the project ?
|
|
|
|
|
Well, also on GitHub there is project owners who have the right to push. Everybody else's changes need to be pulled in on request. If that doesn't happen, it's not better than this. The only advantage I see in GitHub (or similar collaboration platforms) is that it encourages contribution more than this completely unorganised approach. So, yes, it could be worth a try. But I likely wouldn't want to be a project lead.
|
|
|
|
|
OK. I take the lead then.
Here it is :
[^]
First version is CodeProject. Because Your version seems to contains many changes, we will use this one after you submit it.
|
|
|
|
|
I've submitted my pull request. You should take a look at the multiple French files. I also have a bit of normalisation done to my copy which I can offer if you like.
You might also want to make a bigger announcement for the GitHub repo here in the forums.
|
|
|
|
|
|
Let's try. I'll send my changes there, too. If there's a response, we'll see. If not, that repo might be as dead as this article.
|
|
|
|
|
I've made many changes to reflect comments and suggestions.
It's an alpha version. testing has not been done for the moment. It's the next step.
|
|
|
|
|
What's the current status? The GitHub repository from "stfx" has a few small changes over what's available here on CodeProject. So I consider that more up-to-date and if any forks are done, they should probably be done directly from that "official" repo.
I have repeated my pull requests towards that repository. Let's see what happens. I've got more ideas, like using https for all download links, adding VC++2010SP1, and removing /q from all setups because it mutes critical error messages required to understand failures. (I had these issues myself and needed to phone-debug that thing.)
I have also deleted my other fork of your repository. (You merged my changes anyway. But I think you should redo it from the other one.)
|
|
|
|
|
|
Yes, you can contribute. Just fork the original repository and create a pull request with your changes.
|
|
|
|
|
My changes have been merged into the latest version of the source code. It can be found in the official repository at GitHub: stfx/innodependencyinstaller - Inno Setup - GitHub[^] The author is pretty responsive there so I guess only this CodeProject page is abandoned, not the project itself.
|
|
|
|
|
Hello,
I added support to SQL Server Compact 4.0 SP1. Follow the code:
File scripts\products\sqlcompact40sp1.iss
[CustomMessages]
sqlcompact40sp1x86_title=SQL Server Compact 4.0 Service Pack 1 (x86)
sqlcompact40sp1x64_title=SQL Server Compact 4.0 Service Pack 1 (x64)
;en.sqlcompact40sp1_size=5.3 MB
;de.sqlcompact40sp1_size=5,3 MB
brazilianportuguese.sqlcompact40sp1_size=2,5 MB
[Code]
const
sqlcompact40sp1x86_url = 'http://download.microsoft.com/download/F/F/D/FFDF76E3-9E55-41DA-A750-1798B971936C/ENU/SSCERuntime_x86-ENU.exe';
sqlcompact40sp1x64_url = 'http://download.microsoft.com/download/F/F/D/FFDF76E3-9E55-41DA-A750-1798B971936C/ENU/SSCERuntime_x64-ENU.exe';
procedure sqlcompact40sp1();
begin
if (not RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0')) then
if (isX86()) then
AddProduct('SSCERuntime_x86-ENU.msi',
'',
CustomMessage('sqlcompact40sp1x86_title'),
CustomMessage('sqlcompact40sp1_size'),
sqlcompact40sp1x86_url,
false, true)
else
AddProduct('SSCERuntime_x64-ENU.msi',
'',
CustomMessage('sqlcompact40sp1x64_title'),
CustomMessage('sqlcompact40sp1_size'),
sqlcompact40sp1x64_url,
false, true)
end;
If the .msi files are in dependencies folder, the installation works. But when the installer download it, happens an error in installation. Is there any bug in my code? Do you have a code for adding support for SQL Compact 4.0 SP1?
|
|
|
|
|
|
|
It's a perfect project Thanks
|
|
|
|
|
Hi.
I ship 2 versions of my program a x86 and x64 bit of my application.
I have noticed when the user tries to install my 32 bit version on a 64 bit OS the scripts will detect it's a 64 bit system and install the 64 bit resources. This causes my 32 bit application to crash with System.IO (File Missing) Error.
To prevent this.. I have to force the x86 resources for my 32 bit app on the 64bit OS
In my Inno Setup File above [Setup] add this line.
;comment out this next line if your app is 64 bit or Any CPU
#define force_x86
Next find this block of code.
#ifdef use_vc2013
vcredist2013();
#endif
and replace it with this one.
#ifdef use_vc2013
#ifdef force_x86
vcredist2013(true); #else
vcredist2013(false); #endif
#endif
Here is my modified vcredist2013.iss
[CustomMessages]
vcredist2013_title=Visual C++ 2013 Redistributable
vcredist2013_title_x64=Visual C++ 2013 64-Bit Redistributable
en.vcredist2013_size=6.2 MB
de.vcredist2013_size=6,2 MB
en.vcredist2013_size_x64=6.9 MB
de.vcredist2013_size_x64=6,9 MB
[Code]
const
vcredist2013_url = 'http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x86.exe';
vcredist2013_url_x64 = 'http://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe';
vcredist2013_productcode = '{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}';
vcredist2013_productcode_x64 = '{A749D8E6-B613-3BE3-8F5F-045C84EBA29B}';
procedure vcredist2013(Force_x86:Boolean);
begin
if (not IsIA64()) then begin
if (IsX64()) then begin
if (Force_x86 = true) then begin
if (not msiproduct(GetString(vcredist2013_productcode, vcredist2013_productcode, ''))) then begin
AddProduct('vcredist2013' + '.exe', '/passive /norestart',
CustomMessage('vcredist2013_title'),
CustomMessage('vcredist2013_size'),
GetString(vcredist2013_url, vcredist2013_url, ''), false, false);
end;
end else if (Force_x86 = false) then begin
if (not msiproduct(GetString(vcredist2013_productcode, vcredist2013_productcode_x64, ''))) then begin
AddProduct('vcredist2013' + GetArchitectureString() + '.exe', '/passive /norestart',
CustomMessage('vcredist2013_title' + GetArchitectureString()),
CustomMessage('vcredist2013_size' + GetArchitectureString()),
GetString(vcredist2013_url, vcredist2013_url_x64, ''), false, false);
end;
end;
end else if (IsX86()) then begin
if (not msiproduct(GetString(vcredist2013_productcode, vcredist2013_productcode_x64, ''))) then begin
AddProduct('vcredist2013' + GetArchitectureString() + '.exe', '/passive /norestart',
CustomMessage('vcredist2013_title' + GetArchitectureString()),
CustomMessage('vcredist2013_size' + GetArchitectureString()),
GetString(vcredist2013_url, vcredist2013_url_x64, ''),false, false);
end;
end;
end;
end;
You can modify the same thing with 2005,2008,2010,2012,2015
This fixes the following issues.
when the force_x86 flag is enabled.
======================================
1. Will install x86 resources instead of the x64 version
2. Will install the x86 version even if the x64 version is already installed.
when the force_x86 flag is not enabled (commented out)
1. It will auto detect as normal
Having experience with .NET 4.0 you can install the 64 bit resource and run 32 or 64 bit applications on a 64bit OS, but it seems that the C++ resources are different, you have to have the 32 bit or 64 bit version in which you want to run.. I have noticed this true on windows 8.1 and windows 10
Thanks,
David Eaton
modified 15-Aug-15 7:54am.
|
|
|
|
|
First let me say we love, love, love this tool - we've used it in our apps for years.
But it seems like it might have an issue on Windows 10. It insists on downloading and installing NET 4.5.2 every time even though this should come installed with Win 10 already.
Can anyone else confirm this issue, or know of a workaround or patch to solve it?
Thanks!
|
|
|
|
|
Hi,
I had the same problem and I modified the dotnetfxversion.iss file like that and working for me.
[Code]
type
NetFXType = (NetFx10, NetFx11, NetFx20, NetFx30, NetFx35, NetFx40Client, NetFx40Full, NetFx45);
const
netfx11plus_reg = 'Software\Microsoft\NET Framework Setup\NDP\';
function netfxinstalled(version: NetFXType; lcid: string): boolean;
var
regVersion: cardinal;
regVersionString: string;
begin
if (lcid <> '') then
lcid := '\' + lcid;
if (version = NetFx10) then begin
RegQueryStringValue(HKLM, 'Software\Microsoft\.NETFramework\Policy\v1.0\3705', 'Install', regVersionString);
Result := regVersionString <> '';
end else begin
case version of
NetFx11:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'Install', regVersion);
NetFx20:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'Install', regVersion);
NetFx30:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0\Setup' + lcid, 'InstallSuccess', regVersion);
NetFx35:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'Install', regVersion);
NetFx40Client:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Install', regVersion);
NetFx40Full:
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Install', regVersion);
NetFx45:
begin
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion);
// >= 4.5.0 and <= 4.6.0
Result := (regVersion >= 378389) and (regVersion <= 393295);
Exit;
end;
end;
Result := (regVersion <> 0);
end;
end;
function netfxspversion(version: NetFXType; lcid: string): integer;
var
regVersion: cardinal;
begin
if (lcid <> '') then
lcid := '\' + lcid;
case version of
NetFx10:
//not supported
regVersion := -1;
NetFx11:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v1.1.4322' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx20:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v2.0.50727' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx30:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.0' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx35:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v3.5' + lcid, 'SP', regVersion)) then
regVersion := -1;
NetFx40Client:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Client' + lcid, 'Servicing', regVersion)) then
regVersion := -1;
NetFx40Full:
if (not RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Servicing', regVersion)) then
regVersion := -1;
NetFx45:
if (RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion)) then begin
if (regVersion = 379893) or (regVersion = 393295) then
regVersion := 2 // 4.5.2
else if (regVersion = 378675) or (regVersion = 378758) or (regVersion = 393295) then
regVersion := 1 // 4.5.1
else if (regVersion = 378389) or (regVersion = 393295) then
regVersion := 0 // 4.5.0
else
regVersion := -1;
end;
end;
Result := regVersion;
end;
Best regards.
|
|
|
|
|
|
Hi,
I think I found a problem in dotnetfxversion.iss!?
When the .NET Framework 4.6 is installed is not regVersion 379893 (4.5.2) but 393295 (4.6) by default.
Issue found here:
begin
RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion);
Result := (regVersion >= 378389) and (regVersion <= 379893);
Exit;
end;
And here:
if (RegQueryDWordValue(HKLM, netfx11plus_reg + 'v4\Full' + lcid, 'Release', regVersion)) then begin
if (regVersion = 379893) then
regVersion := 2
else if (regVersion = 378675) or (regVersion = 378758) then
regVersion := 1
else if (regVersion = 378389) then
regVersion := 0
else
regVersion := -1;
end;
Best regards.
modified 4-Aug-15 10:31am.
|
|
|
|
|
Please add 2015 support.
http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe
http://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe
|
|
|
|
|
|
This actually helped me with what Ive been researching and trying to achieve independently since the past few weeks. This is actually a total bundle of per-requisites to the application I'm currently building.
Thanks a lot.
|
|
|
|
|
Would it be difficult to add the VSTO 2010 runtime dependency?
|
|
|
|
|
|