• Announcements

    • xper

      MSFN Sponsorship and AdBlockers!   07/10/2016

      Dear members, MSFN is made available via subscriptions, donations and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, become a site sponsor and ads will be disabled automatically and by subscribing you get other sponsor benefits.
ipen

7z Self extracting

38 posts in this topic

Hi,

Well let me better explain :

"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%

copy /b "C:\Program Files\7-Zip\7zSD_LZMA.sfx" + config.txt + %zipFileName% %outputFile%

where :

%zipFileName% = "MySetup.7z"

%allFromOutputDir% = all of the items that currentlly exists in the output dir of the setup project. (bin\release\...)

%outputFile% = "MySFX.exe"

In addition to supervision given by submix8c, give the same name inside config.txt you use with 7zip:

config.txt


;!@Install@!UTF-8!
GUIMode="2"
RunProgram="MySFX.exe"
;!@InstallEnd@!

*Edit:

Maybe you can try like this (example): without using %zipFileName% !

config.bat


@echo off
SETLOCAL ENABLEEXTENSIONS
echo.

rem All files needed for drivers 32 or 64-bit OS are inside the folder Scan3970:
rem C:\Program Files\7-Zip\Scan3970 (or another partition)
rem D:\Program Files\7-Zip\Scan3970

rem My folder with all my files needed
set AllFileOutputDir=Scan3970

rem MySFX.exe file Name
set OutPutFile=Scan3970.exe

cd /d %~dp0
if exist "%AllFileOutputDir%.7z" del /f /q "%AllFileOutputDir%.7z"
echo.

cd /d "%~dp0%AllFileOutputDir%"

"%~dp07z.exe" a -t7z -mx9 -y "%~dp0%AllFileOutputDir%"
copy /b /y "%~dp07zsd.sfx" + "%~dp0Scan3970.txt" + "%~dp0%AllFileOutputDir%.7z" "%~dp0%OutPutFile%"

pause

Edited by myselfidem
0

Share this post


Link to post
Share on other sites

OK,

1) Why did you decied that " MySetup.msi (NOT WITHIN A FOLDER!!!)" ???

It is in the folder and when checking the zip created after

"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%"

the MSI is present!!!

2) both msi and exe are created from a simple visual studio .net, C# setup project. Framework 3.5..

No problem with that part at all!

More over - and that is the point you keep missing - The self extracting zip works just fine (and run the MSI and all) when i run it on win 7 (extract exe and MSI and execute it all!!!).

The same self extracting zip - will not work on win XP.

SO ???

Edited by ipen
0

Share this post


Link to post
Share on other sites

Why did you decied that " MySetup.msi (NOT WITHIN A FOLDER!!!)" ???

It is in the folder and when checking the zip created after

"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir%"

the MSI is present!!!

Because, it seems on Windows XP a subfolder is created inside %temp% and the installation fails.

And why did you decide to set "MySetup.msi" inside a folder first?

Like I suggested inside my last post your "MySetup.msi" is present also but inside the same archive 7z !

Have you tried what submix8c asked (DO NOT CLOSE THE message window!):

-To test this - WHEN it Fails with "This installation package could not be opened..." NAVIGATE in EXPLORER to the TEMP folder and SEE IF IT IS INDEED THERE!

Thanks to let us know!

Edited by myselfidem
0

Share this post


Link to post
Share on other sites

OK... let's get this straight...

Your "built" in VisualStudio "SETUP.EXE" is POINTING AT THE WRONG PLACE (folder) !!! Got it? It's the SETUP.EXE!!!

Launching Application.

Running command 'C:\WINDOWS\system32\msiexec.exe' with arguments ' -I "C:\DOCUME~1\...\LOCALS~1\Temp\7zS909.tmp\MySetup.msi" '

-----

Result (according to Your Notes):

"This installation package could not be opened..."

(My Note: OBVIOUSLY a result of NOT FINDING THE MSI FILE!)

(My Note: You APPARENTLY have used "\...\" to keep us from seeing UserID?)

Please NOTICE that "Documents and Settings" are in an ENTIRELY DIFFERENT PLACE between XP and Win7!!! OK???

Microsoft USUALLY creates a SFX package that GENERATES a COMMON FOLDER NAME in the ROOT directory of the "Largest Free Space HDD" BEFORE the "Setup" program is executed and SETUP uses THAT folder name, UNLIKE 7ZIP!!!

Either CHANGE THE SETUP.EXE program

-OR-

CHANGE THE CONFIG.TXT to create a SPECIFIC folder in the ROOT and Run from THERE!

Did you even READ the DETAILS on parameters in the LINKS given? GO DO SOME READING and TRY it.... DUDE!!! :realmad:

edit - and the suggestion of using a CMD (EXAMPLE GIVEN) was to "beat" it! Learn a little CMD Scripting as well...

edit2 - a little info on Folder Names / Junction Points

Edited by submix8c
0

Share this post


Link to post
Share on other sites

Update -

VS2005 vs VS2008 a bug!

Reference is to IExpress as opposed to 7Zip, but the problem appears to be the same. Just go to the last post in the link and follow the two other post.

0

Share this post


Link to post
Share on other sites

I created a zip which after extraction run the "setup.exe" .

this is the command lines in the batch file :

"C:\Program Files\7-Zip\7z.exe" a %zipFileName% %allFromOutputDir% (creating a 7z zip)

copy /b "C:\Program Files\7-Zip\7zS.sfx" -y + MCTSFXConfig.txt + %zipFileName% %outputFile% (Creating self extracting zip)

re:

variabili

"%ProgramFiles%\7-Zip\7z.exe" a -t7z "%zipFileName%" -oa "%allFromOutputDir%" (creating a 7z zip)

copy /b "%programfiles%\7-Zip\7zS.sfx" -y + "MCTSFXConfig.txt "+ "%zipFileName%" "%outputFile%" (Creating self extracting zip)

http://rapidgator.net/file/37500924/7zsfx_windows_XP_Vista_win7-32-64-MI.exe.html

moduli 7zsd + file.bat + reshaker + extraico + cmenu

video tutorial

http://youtu.be/fdRV6KzjQpU

Edited by odar
0

Share this post


Link to post
Share on other sites

;!@Install@!UTF-8!

Title="7-Zip 4.00"

BeginPrompt="Do you want to install the 7-Zip 4.00?"

ExecuteFile="7zip.msi"

;!@InstallEnd@!

;!@Install@!UTF-8!

Title="7-Zip 4.01 Update"

BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"

ExecuteFile="msiexec.exe"

ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"

;!@InstallEnd@!

for file . msi

---------------------------------------------

bat file drag & drop

----------------------------------------

create a folder 7zsfx in %programfiles%

in folder reshaker ,extraico,file bat

create shortcut file bat in send to

----------------------------------------------------

file bat

___________________________________________________--

set pp=%1

cd %programfiles%\7zsfx\temp"

del /s/q "%programfiles%\7zsfx\temp"

rd\\.\ "%programfiles%\7zsfx\temp" /s/q

md "%programfiles%\7zsfx\temp"

rem --------------------------------------------

@echo off

cls

title creates sfx that executes a .bat file

rem -----------------------------------------

for /f "useback tokens=*" %%a in ('%pp%') do @set gff=%%~a

%~d1

cd "%~dp1"

cd "%~f1"

if [%errorlevel%] equ [1] @set fil=&goto parr

echo compressing file

cd..

set fil=\**

:parr

echo %errorlevel% errorlevel

set cuu=%cd%

rem ----------------------------------------------------------------

cls

@echo .

@echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

@echo ±± ±±

@echo ±± creates sfx that executes a hidden .bat file ±±

@echo ±± ±±

@echo ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

@echo .

rem ----------------------------------------------------------

set /p as="select sfx name without extension :"

set /p gtr="select file .bat to be executed afterwards :"

:pass

set bn=.7z

set sd=.exe

set cv=%as%%fv%%bn%

set sx=%as%%fv%%sd%

set sz=%as%%fv%

set/a vb=%vb%+1

set fv=_%vb%

set co=%cl:~0,-4%

set pr=%programfiles%

set us=%username%

set usp=%userprofile%

set dc=.

if exist "%~dp1%sx%" goto pass

if exist "%~dp1%cv%" goto pass

echo creating %sx% wait....

rem -------------------------------------------------

rem ----------------------------------------------------------------

echo ;!@Install@!UTF-8!>"%programfiles%\7zsfx\temp\configsfx.txt"

echo InstallPath="%%temp%%\\%sz%">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo OverwriteMode="0">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo ExecuteFile="hidcon:%gtr%">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo GUiMode="2">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo Process="no">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo Delete="%%%%T">>"%programfiles%\7zsfx\temp\configsfx.txt"

echo ;!@InstallEnd@!>>"%programfiles%\7zsfx\temp\configsfx.txt"

rem ---------------------------------------------------------------

start/wait "" "notepad.exe" ""%programfiles%\7zsfx\temp\configsfx.txt""

copy "%programfiles%\7zsfx\temp\configsfx.txt" "%gff%" /v/y

rem -----------------------------------------------------------------

%~d1

cd "%~dp1"

7za a -t7z "%cv%" -oa "%gff%%fil%"

echo %pp%%fil% compression finished

rem -----------------------------------------------------------------

-----------------------------------------------------------------

echo copies %~dp1%cv% in %~dp1%sx%

copy /b "%programfiles%\7zsfx\7Zsd2_all.sfx" + "%programfiles%\7zsfx\temp\configsfx.txt" + "%~dp1%cv%" "%~dp1%sx%"

rem ----------------------------------------------------------

del "%~dp1%cv%" /q

rem ----------------------------------------------------------

del /s/q "%programfiles%\7zsfx\temp"

rd\\.\ "%programfiles%\7zsfx\temp" /s/q

md "%programfiles%\7zsfx\temp"

rem extracts and inserts icons

%~d1

cd "%gff%"

if exist "icon_1.ico" goto icona

if not exist "%gtr%" goto end

%SYSTEMDRIVE%

cd "%programfiles%\7zsfx"

del "%programfiles%\7zsfx\reshacker_cambio_icona\*.*" /q

extraico.exe -export -iconindex=1 -desttype=ICO -closewhendone "%gff%\%gtr%" "%programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico"

cd "%programfiles%\7zsfx\reshacker_cambio_icona"

if not exist "icon_1.ico" exit

dir /w %programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico | find " 1 File 0 byte"

if "%errorlevel%" == "0" (goto end)

cd ..

ResHacker.exe -addoverwrite "%~dp1%sx%", "%~dp1%sx%", "%programfiles%\7zsfx\reshacker_cambio_icona\icon_1.ico", ICONGROUP,MAINICON,0

:end

exit

:icona

%SYSTEMDRIVE%

cd "%programfiles%\7zsfx"

dir /w "%gff%\icon_1.ico" | find " 1 File 0 byte"

if "%errorlevel%" == "0" (goto end)

ResHacker.exe -addoverwrite "%~dp1%sx%", "%~dp1%sx%", "%gff%\icon_1.ico", ICONGROUP,MAINICON,0

exit

_______________________________

0

Share this post


Link to post
Share on other sites

@odar - appreciate the detailed explanation of how you do it, except...

The OP specifically states that the call to MSIEXEX is done from within a Visual Studio "SETUP.EXE" that they have compiled, which means the path given within the SETUP.EXE is not working.

@ipen - have you considered trying to create an Install with something OTHER THAN a 7-zip?

0

Share this post


Link to post
Share on other sites

bat files are all contained in this sfx with installation of CMenu you create a context menu for easy operation of the module with 7zsd reshaker extraico and change the icon below links to download the file over a video on the operation

tested on windows xp and Vista trouble with the Italian LANGUAGE with c menu in Windows 7 does not create the context menu could improve it?

link to sfx

http://rapidgator.net/file/37500924/7zsfx_windows_XP_Vista_win7-32-64-MI.exe.html

link to video

http://youtu.be/fdRV6KzjQpU

Edited by odar
0

Share this post


Link to post
Share on other sites
The OP specifically states that the call to MSIEXEC is done from within a Visual Studio "SETUP.EXE" that they have compiled, which means the path given within the SETUP.EXE is not working.
:whistle: The problem is not with 7-Zip but with the USER-WRITTEN PROGRAM (written in Visual Studio, maybe a C++ Program, which internally calls MSIEXEC with an improper path)! BAT files will not fix this. The PROGRAM needs fixed! :yes:

Here is a hint...

Edited by submix8c
0

Share this post


Link to post
Share on other sites

Not meaning to bump this topic, but here's an interesting and related article about Junction Points / Reparse Points (with some basic code examples).

0

Share this post


Link to post
Share on other sites

;!@Install@!UTF-8!

InstallPath="%temp%\\Mysetup"

RunProgram="msistub MySetup.msi /qb-!"

Delete="%%T"

;!@InstallEnd@!

msistub.exe

Edited by odar
0

Share this post


Link to post
Share on other sites

Thx, Odar, but you still don't get it...

the Original Poster is CALLING all of the checks and installs from HIS OWN VISUAL STUDIO PROGRAM! Meaning... the MSI is NOT to be called/installed from 7-zip SEPARATELY!!! JUST THE SETUP.EXE (which (1) checks the registry to see if PGM installed and (2) if not, Installs it).

Capice???

Please reread the thread....

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.