Posts

App-V packaged Visual Studio Code fails on Windows 11 24H2 and 25H2: the --no-sandbox fix with trade-offs

We are in the process of migrating away from App-V to App Volumes over the next year. However, until the migration from Altiris to Workspace ONE UEM and App Volumes Manager is fully completed, we are keeping a number of App-V packages alive. In our testing, Visual Studio Code packaged with Microsoft App-V stopped launching on Windows 11 24H2 and 25H2, while the same package continued to work on 23H2. Testing newer Visual Studio Code versions did not solve the problem. However, launching Visual Studio Code with the --no-sandbox switch worked immediately. The Fix The practical workaround is simple: Code.exe --no-sandbox This strongly suggests that the failure is related to Electron's sandboxed startup path on newer Windows builds, rather than a normal packaging mistake or a problem limited to one specific Visual Studio Code version. Security Consequences That said, this...

Disabling Auto-Updates in the reMarkable Companion App: WinSparkle DLL Stub Method

Image
When deploying the reMarkable Companion App in an enterprise environment, the built-in auto-updater creates a recurring problem. The application uses the WinSparkle framework to check for updates on every launch. When a new version is found, it shows a dialog and attempts to download and install the update — which requires administrative privileges that standard users do not have.     [Picture 1] The update dialog appears on every launch when a newer version is available.   The “Skip this version” button does not work. The update downloads regardless, and when the installer attempts to run it fails for non-admin users, showing an error message. The update dialog then reappears on the next launch.     [Picture 2] The updater downloads the installer in the background before failing due to missing admin rights.   Method Overview Method Status Description WinSparkle DLL stub Current R...

How Does App Volumes Direct Mode Work via MSI

Image
In connection with another blog post I’m writing in a series about App Volumes Direct Mode, I wanted to find out exactly how the MSI we create during capture works and what it contains. In this post I have chosen to use a couple of App Volumes MSI-wrapped packages I made myself using their capture tool. After capture, you get a wrapped MSI that contains the App Volumes package (VHD + JSON), either embedded directly or stored inside an internal CAB stream. This also explains why you encounter a CAB file when the package exceeds 2GB. To get the most out of what I'm writing, you should have some familiarity with how MSI files work. In short, an MSI is a database with tables and logic that specifies where and how things should end up on the system. Custom Actions are the logic that performs custom operations within an MSI. This may not be rocket science, but I believe you need the right tools and a decent understanding of MSI to follow the flow. This was previously a gap in my ...