Fixes #4349: Windows admin permissions not persisting between machines This change adds configurable UAC (User Account Control) execution level support to the Windows manifest template, allowing developers to specify admin requirements that persist when executables are distributed. ## Changes Made ### Enhanced Windows Manifest Template - Added conditional UAC `trustInfo` section to manifest template - Uses template variable `{{.ExecutionLevel}}` for dynamic configuration - Backward compatible: no UAC section when execution level not specified ### Project Configuration Support - Added `WindowsInfo` struct to project configuration - Added `executionLevel` field for specifying UAC requirements - Integrated execution level into template data processing ### Template Data Enhancement - Extended `assetData` struct to include execution level - Updated template resolution to extract Windows-specific configuration - Maintained backward compatibility with existing projects ### Documentation Updates - Added comprehensive Windows UAC guide with examples - Updated project configuration reference with Windows options - Included usage examples and supported execution levels ## Usage Developers can now specify execution level in wails.json: ```json { "info": { "windows": { "executionLevel": "requireAdministrator" } } } ``` Supported values: - `requireAdministrator`: Requires admin privileges - `asInvoker`: Runs with invoker's privileges - `highestAvailable`: Runs with highest available privileges ## Testing Verified that: - UAC trustInfo section is properly embedded in Windows executables - Admin privileges persist when executables are copied between machines - Backward compatibility maintained for existing projects - Template processing works correctly during build 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .vscode | ||
| blog | ||
| docs | ||
| i18n | ||
| src | ||
| static | ||
| versioned_docs | ||
| versioned_sidebars | ||
| .gitattributes | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierignore | ||
| babel.config.js | ||
| crowdin.yml | ||
| docusaurus.config.js | ||
| package.json | ||
| pnpm-lock.yaml | ||
| prettier.config.js | ||
| README.md | ||
| sidebars.js | ||
| Taskfile.yml | ||
| versions.json | ||
Website
This website is built using Docusaurus 2, a modern static website generator.
Installation
$ npm
Local Development
$ npm run start
Other languages:
npm run start -- --locale <language>
language - The language code configured in the i18n field in the docusaurus.config.js file.
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Translate
After the English source file is updated, run the following command to submit the source file to Crowdin:
npm run crowdin push -- -b <branch>
branch - Branch name in crowdin project
Run the following command to pull the translated files in crowdin to the local:
npm run crowdin pull -- -b <branch> -l <languageCode>
languageCode - Note that this refers to the language code in the crowdin project.
The recommended practice is to update the English source file locally, then translate the file in crowdin, and finally pull the translated file to the local.
Build
$ yarn build
This command generates static content into the build directory and can be served using any static contents hosting service.