{"record":{"id":"ba9f919261fdee4e","repo":"BeyondDimension/SteamTools","slug":"signtool-exe","errorCode":null,"errorMessage":"SignTool.exe","messagePattern":"SignTool\\.exe","errorType":"exception","errorClass":"FileNotFoundException","httpStatus":null,"severity":"error","filePath":"src/BD.WTTS.Client.Tools.Publish/Helpers/MSIXHelper.cs","lineNumber":331,"sourceCode":"        const string SignTool_exe = \"SignTool.exe\";\n\n        static string GetSignToolPath(WinVersion version)\n        {\n            var path = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86);\n            path = Path.Combine(path, \"Windows Kits\", \"10\", \"bin\", $\"10.0.{(ushort)version}.0\", RuntimeInformation.OSArchitecture.ToString().ToLowerInvariant(), SignTool_exe);\n            return path;\n        }\n\n        static string GetSignToolPath()\n        {\n            var query = from m in Enum.GetValues<WinVersion>().OrderByDescending(x => (ushort)x)\n                        let p = GetSignToolPath(m)\n                        let exists = File.Exists(p)\n                        where exists\n                        select p;\n            var path = query.FirstOrDefault();\n            if (string.IsNullOrWhiteSpace(path))\n                throw new FileNotFoundException(SignTool_exe);\n            return path;\n        }\n\n        const string timestamp_url = \"http://timestamp.digicert.com\";\n\n        public const string pfxFilePath_MSStore_CodeSigning = @\"C:\\MSStore_CodeSigning.pfx\";\n        public const string pfxFilePath_BeyondDimension_CodeSigning = @\"C:\\BeyondDimension_CodeSigning.pfx\";\n        public const string pfxFilePath_HSM_CodeSigning = \"e1e00c478e41300480a63cd62d5f771d24cf903b\";\n\n        public static void Start(\n            bool force_sign,\n            string fileName,\n            string? pfxFilePath = null,\n            string? workingDirectory = null)\n        {\n            //if (pfxFilePath != pfxFilePath_MSStore_CodeSigning)\n            //    return;\n","sourceCodeStart":313,"sourceCodeEnd":349,"githubUrl":"https://github.com/BeyondDimension/SteamTools/blob/c16ffa08e03b192d23ada290c4969e77f9201f3d/src/BD.WTTS.Client.Tools.Publish/Helpers/MSIXHelper.cs#L313-L349","documentation":"Error \"SignTool.exe\" thrown in BeyondDimension/SteamTools.","triggerScenarios":"Thrown when signing an MSIX package: SignTool.exe could not be located in any of the searched Windows SDK installation paths.","commonSituations":"The Windows SDK (including the signing tools component) is not installed, or signtool.exe lives outside the standard SDK bin directories searched. Install the Windows SDK with the signing tools, or ensure the SDK bin path is discoverable.","solutions":["Install the Windows 10/11 SDK so SignTool.exe is present under %ProgramFiles(x86)%\\Windows Kits\\10\\bin\\<version>\\<arch>\\.","Add the Windows SDK 'Windows SDK Signing Tools for Desktop Apps' feature, which provides SignTool.exe.","Ensure the signing step runs on a Windows machine with the Windows Kits directory available."],"exampleFix":"Open Visual Studio Installer, add the Windows SDK signing tools component, then rerun the signing step.","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c16ffa08e03b192d23ada290c4969e77f9201f3d","analyzedAt":"2026-08-13T11:52:20.410Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}