Hello , how can I squeeze multiple files (.dll and .xaml) into an one .exe package ?
Many thanks
Patrick
squeeze multiple files (.dll and .xaml) into an one .exe package
Forum rules
Do not post any licensing information in this forum.
Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
Do not post any licensing information in this forum.
Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
- Patrick9999
- Posts: 9
- Last visit: Thu May 25, 2023 11:53 pm
- Alexander Riedel
- Posts: 8478
- Last visit: Tue Mar 26, 2024 8:52 am
- Been upvoted: 37 times
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
No they won't. Sorry James.
Our packager does not place external programs (dlls are in essence programs, just like exe files) and data files into a packaged executable.
There are many reasons for not doing this anymore.
If you want this for deployment purposes you would generally create an MSI file to install your applications and all associated files.
But it would help to know what it is you are trying to accomplish. Your question is a little bit too 'global'....
Our packager does not place external programs (dlls are in essence programs, just like exe files) and data files into a packaged executable.
There are many reasons for not doing this anymore.
If you want this for deployment purposes you would generally create an MSI file to install your applications and all associated files.
But it would help to know what it is you are trying to accomplish. Your question is a little bit too 'global'....
Alexander Riedel
SAPIEN Technologies, Inc.
SAPIEN Technologies, Inc.
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
Actually, I found a way to do exactly this...
I have a little script I use that compresses dll's, files, etc into a self extracting ps1 file...
you point it at all of your required extra files, and it will compress them all to ps1's.
then its just a matter of adding them to the project and calling the invoke on them.
When you compress them, you can specify if you want the file (e.g. dll) to be loaded into memory, import as a powershell module, or export the file to disk before doing something with it.
I have a little script I use that compresses dll's, files, etc into a self extracting ps1 file...
you point it at all of your required extra files, and it will compress them all to ps1's.
then its just a matter of adding them to the project and calling the invoke on them.
When you compress them, you can specify if you want the file (e.g. dll) to be loaded into memory, import as a powershell module, or export the file to disk before doing something with it.
Code: Select all
#Created: 2020-02-07 17:30:57Z
$EncodedCompressedFile = @'
Fcs7CoAwDADQveAdgrpWT+AodBSXzn6CLaSNpCl4fHV/r7uihroPB6cxRyINjfESFW3gotA6JGLwLHS2jelzJYIJVtxO635gF+F0f3ARLAXmrCigDPMT9Qsv
'@
Write-Verbose "Loading HelloWorld.ps1"
$DeflatedStream = New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile),[IO.Compression.CompressionMode]::Decompress)
$UncompressedFileBytes = New-Object Byte[](95)
$DeflatedStream.Read($UncompressedFileBytes, 0, 95) | Out-Null
#write to file
[io.file]::WriteAllBytes('HelloWorld.ps1', $UncompressedFileBytes)
#run as script block
$SB = [scriptblock]::Create([System.Text.Encoding]::ASCII.GetString($UncompressedFileBytes))
Invoke-Command $SB
Code: Select all
#Created: 2020-02-07 17:28:22Z
$EncodedCompressedFile = @'
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
'@
Write-Verbose "Loading HelloWorld"
$DeflatedStream = New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile),[IO.Compression.CompressionMode]::Decompress)
$UncompressedFileBytes = New-Object Byte[](4608)
$DeflatedStream.Read($UncompressedFileBytes, 0, 4608) | Out-Null
[io.file]::WriteAllBytes('HelloWorld.exe', $UncompressedFileBytes)
- Alexander Riedel
- Posts: 8478
- Last visit: Tue Mar 26, 2024 8:52 am
- Been upvoted: 37 times
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
Just make sure you don't install your scripts in any protected folder like "Program Files" or below, as the extract will fail without elevation.
Alexander Riedel
SAPIEN Technologies, Inc.
SAPIEN Technologies, Inc.
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
this is true, however they can be run in memory if you are not extracting to disk...Alexander Riedel wrote: ↑Thu Feb 06, 2020 11:09 pm Just make sure you don't install your scripts in any protected folder like "Program Files" or below, as the extract will fail without elevation.
- Alexander Riedel
- Posts: 8478
- Last visit: Tue Mar 26, 2024 8:52 am
- Been upvoted: 37 times
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
Yeah, that will make it look like malware. I wouldn't run that
Can I ask what the reason behind this is? Why are you trying to hide DLLs and other files?
Can I ask what the reason behind this is? Why are you trying to hide DLLs and other files?
Alexander Riedel
SAPIEN Technologies, Inc.
SAPIEN Technologies, Inc.
Re: squeeze multiple files (.dll and .xaml) into an one .exe package
Not trying to hide the DLL's just trying to have a single, portable exe, that does not need to be installed to run