ILSpy
ILSpy copied to clipboard
provide msi for machine install (machine scope)
Is your feature request related to a problem? Please describe.
current ILSPY's mis installer will not allow choose the installer dir and simply put the binary on system drive( C:
).
unlike vs code, vs code provider both installer for both user scope and machine scope
you can install vscode machine wide installer with command
winget install vscode --scope machine
Describe the solution you'd like
please provider a msi binary for system install, or allow user to choose installer directory.
Additional context
relate #2676
As a workaround, you can call
msiexec /i <ILSpyPackageFile.msi> ALLUSERS=1 INSTALLDIR="C:\Program Files\ILSpy"
from an elevated command prompt.
@John0King would that be an OK solution (if of course documented properly)?
@christophwille sorry for the delay response .
would that be an OK solution (if of course documented properly)?
no ,it doesn't work , it'll show help message when you use custome property
@John0King
Useless to say, <ILSpyPackageFile.msi>
was a placeholder for the MSI-filename in my previous post.
If msiexec displays its help box, it's because it hasn't been called properly. If that's the case, please post the exact command you're using.
Here is what I see right just after launching the command:
This is just a standard mechanism in MSI. You call msiexec, say you want to install a package, point it to the MSI file, and pass some public properties.
However, as the MSI package has not been designed for local machine installation, there are some caveats:
- If you don't run this command from an elevated command prompt, it won't be able to elevate before it executes its installation sequence.
- You'll need to specify the INSTALLDIR again when deinstalling, otherwise, MSI won't erase the files.
As I said, it's a workaround, not the solution.
msiexec /i "C:\Users\ABlue\Downloads\ILSpy_Installer_8.2.0.7535-x64.msi" ALLUSERS=1 INSTALLDIR="D:\Program Files\ILSpy"
@John0King , I'm under the impression that the properties you've specified cannot be parsed properly for some reason.
If I try this:
msiexec /i ILSpy_Installer_8.2.0.7535-x64.msi ALLUSERS=1 INSTALLDIR=C:\Program Files\ILSpy
then I see the same as you. It's because the quotation marks are missing for the INSTALLDIR I have specified.
What delimiter do you normally use in Chinese editions of Windows to specify long paths or paths with a space? Or is the backslash used as folder delimiter in these editions?
Can you try this?
msiexec /i <ILSpyPackageFile.msi> ALLUSERS=1 INSTALLDIR="D:\ILSpy"
@reureu
turns out , it seems a bug of powershell
, it can be start with CMD.exe
🤣
@John0King ,
Gosh! I hadn't even paid attention to your Powershell prompt! :eyeglasses: It's not exactly a bug of Powershell. It's merely due to the way parameters are passed to a msiexec in Powershell. Others have been confronted to that. See here https://stackoverflow.com/questions/45223031/powershell-call-msi-with-arguments
If I really had to use Powershell to launch msiexec, I would go for
msiexec /i ILSpy_Installer_8.2.0.7535-x64.msi ALLUSERS=1 INSTALLDIR=`"C:\Program Files\ILSpy`"
See the backtick in front of each double quote? It is there to pass the double quotes to msiexec.