Is it possible to remove a custom non empty directory which has subfolders when the application is uninstalled?
Using RemoveFile table, deletion of directory doesn't work.
Please suggest a way to delete a custom directory on uninstallation of windows application.
Thanks in advance,
Actually, the RemoveFile table should work with any folder. Please refer to this QA for details.
Also you can use Custom Actions to remove folder, here is you can use:
EXE file having a path referencing a directory (Custom Action Type 34). For example: CMD.EXE /C "DEL /S /Q c:\needed_folder" from System folder
InstallScript
VBScript
Related
I have an InstallShield project which consists of two files and several folders,
MainSoftware.exe
AuxSoftware.msi
FolderA
FolderB
etc...
The main purpose of the project is just copying all of these files in the path specified by the user. It is very simple. However, after copying AuxSoftware.msi in the destination path, I need that a silent installation begins with this file. I know that a silent installation can be run by the following command:
msiexec /i AuxSoftware.msi /qn
But I don't know how to tell InstallShield that this command must be executed in the destination path after copying AuxSoftware.msi.
Could you please help me?
Thanks in advance
You can only execute one installer at a time once it is in the InstallExecuteSequence. Stein has a very good, brief explanation in the answer here.
I would suggest using a bootstrapper (setup.exe) that can install them in sequence.
Thanks for your suggestions. I found a way. They call it "nested installations". I created a Custom Action having the second .msi or .exe installer I want to run after a specific point in the process of the main installation.
I am creating an installer for my project where I am facing a issue.
The project is not running as expected if it is installed in the directory which contains spaces e.g: "C:\Program Files (x86)" and it is working fine if it is installed in a directory which doesn't contains spaces e.g: "C:\Python27".
So as per my understanding there is nothing wrong with project side and its all with the .iss code.
So can anyone please tell me how to solve this issue. Since most of the installers are created using Inno setup and they are installed in the program files there will be a way to solve this and which I am not aware of it.
Regards,
Bharathi
The issue is not with the spaces. My application creates a log file to log the data. Since the normal user doesn't have rights to create the file in the program files folder the application is not working... The application should be run as admin to work.
Create a symlink using mklink.
Create something like this in [RUN] section:
Filename: {cmd}; Parameters: "/c MKLINK /D {sd}\ProgramPathNoSpaces ""{pf}\Program Path With Spaces"; Flags: RunHidden;
Run your application inside the ProgramPathNoSpaces, using a shortcut with the "start in" property defined.
Hope this help you, but everyone is right. The problem is in the application, this is only a workaround.
I have a installshiled project which generates setup.exe file. I'd like to enable silent install by generating proper setup.iss file. I ran the following command:
Setup.exe /r
which lunched the installer, but it never created the setup.iss file. I looked in C:\Windows as the documentation suggested, as well as some other locations (local directory, program files etc.)
Why isn't it created and how to fix?
Thanks,
Ok I found the problem, and a workaround:
The problem was that my msi project was a Basic MSI Project, as opposed to InstallScript and InstallScript MSI projects. This kind of project does not support reading a response file (aka setup.iss). However, there is a way to perform silent installation for the .msi / setup.exe file:
Setup.exe /s /v"/qn"
will do the trick.
All of this information can be found here
Another option is to explicitly state where you want the setup file generated, using the /f1 option:
Setup.exe /r /f1"C:\your\path\here\setup.iss"
Documentation on this can be found here, but here is a summary from that link:
Using the /f1 option enables you to specify where the response file is (or where it should be created) and what its name is, as in Setup.exe /s /f1"C:\Temp\Setup.iss". Specify an absolute path; using a relative path gives unpredictable results. The /f1 option is available both when creating a response file (with the /r option) and when using a response file (with the /s option)
I am trying to publish a project to Windows Azure but get an error in the generated Microsoft.WindowsAzure.targets file related to length of paths and file names. How can I determine which is the problematic path or filename. The error relates to the "" tag in the generated file
Thanks
Martin
Already an older post - did you check this post?
Path too long error when building a windows azure service
This might reslove your issue.
Since this was still a problem for me years later and the above doesn't apply to Azure SDK v2.8, I was able to solve it by creating a symbolic link to my projects folder. Open up the command prompt as an administrator and run this:
mklink /D C:\Dev C:\Users\danzo\Source\Workspaces
Obviously you can change "C:\Dev" to whatever you want it to be and you'll need to change the longer path above to the root directory of your soltions/projects folder.
I have this batch that needs to run that the user has to execute that will copy a simple xml file. However, everything works fine on windows 2000/XP. However, on windows Vista I get an error 'Access Denied".
Even when I try and copy the file just using windows explorer on Vista I get the same error.
Is there anything I can do to make this file copy. Do I have to add any extra code to my bat file to enable copying of this file?
Many thanks.
#ECHO OFF
REM copy config file to the windows/system32
copy config.xml c:\windows\system32\DataLinks.xml
I'm guessing it's because you're trying to change windows\system32. Vista, 7 and future version of Windows require elevated privileges in order to change system32.
Do you really need to put this file in system32? If it's an arbitrary location, why not pop it in the user's AppData directory (%AppData%\DataLinks.xml)?
AppData is a standard directory that's been around since Windows 2000 that hides in the user's Documents and Settings or Users folder (depending on the version). It's a hidden but user-editable folder, intended for application settings that the user needs to be able to get to but is mostly only going to be used by your code.
You need elevated privs to copy to %windir%\system32
You shouldn't copy your config data into %windir% at all. That's for Windows. Use %AppData%.
If you do copy to %windir%, use the %windir% variable and don't hardcode the path C:\Windows
JS Bangs is right; use %windir% variable. Most of the time when you do that it won't give any errors.
Example:
#ECHO OFF
REM copy config file to the windows/system32
copy config.xml %windir%\system32\DataLinks.xml
But while would you? Just put it in any other one. Like AppData what was already said:
#ECHO OFF
REM copy config file to the windows/system32
copy config.xml %appdata%\DataLinks.xml