{"record":{"id":"af64243ad0ef8e1e","repo":"stride3d/stride","slug":"need-two-extra-arguments","errorCode":null,"errorMessage":"Need two extra arguments","messagePattern":"Need two extra arguments","errorType":"validation","errorClass":"OptionException","httpStatus":null,"severity":"error","filePath":"sources/core/Stride.Core.Tasks/Program.cs","lineNumber":100,"sourceCode":"                    {\n                        if(!OperatingSystem.IsWindows())\n                            throw new OptionException(\"This option is only available on Windows\", \"\");\n                            \n                        if (commandArgs.Count != 2)\n                            throw new OptionException(\"Need one extra argument\", \"\");\n                        var devenvPath = LocateDevenv.FindDevenv(commandArgs[1]);\n                        if (devenvPath == null)\n                        {\n                            Console.WriteLine(\"Could not locate devenv\");\n                            return 1;\n                        }\n                        Console.WriteLine(devenvPath);\n                        break;\n                    }\n                    case \"pack-assets\":\n                    {\n                        if (commandArgs.Count != 3)\n                            throw new OptionException(\"Need two extra arguments\", \"\");\n\n                        var csprojFile = commandArgs[1];\n                        var intermediatePackagePath = commandArgs[2];\n                        // Host-loadable asset assemblies are passed as repeated --pack-asset-assembly= options.\n                        var generatedItems = new List<(string SourcePath, string PackagePath)>();\n                        var logger = new LoggerResult();\n                        if (!PackAssetsHelper.Run(logger, csprojFile, intermediatePackagePath, generatedItems, packAssetAssemblies))\n                        {\n                            foreach (var message in logger.Messages)\n                            {\n                                Console.WriteLine(message);\n                            }\n                            return 1;\n                        }\n                        foreach (var generatedItem in generatedItems)\n                        {\n                            Console.WriteLine($\"{generatedItem.SourcePath}|{generatedItem.PackagePath}\");\n                        }","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/core/Stride.Core.Tasks/Program.cs#L82-L118","documentation":"The pack-assets command requires exactly two extra arguments: the C# project file and the intermediate package path. RealMain checks commandArgs.Count != 3 and throws OptionException when the count differs.","triggerScenarios":"Running 'Stride.Core.Tasks pack-assets' with fewer or more than two extra arguments.","commonSituations":"Omitting the intermediate package path in a build script; paths containing spaces not quoted, splitting into extra arguments; appending extra flags positionally.","solutions":["Invoke as: Stride.Core.Tasks pack-assets <csprojFile> <intermediatePackagePath>.","Quote paths containing spaces so they count as one argument.","Pass host-loadable asset assemblies via repeated --pack-asset-assembly= options, not positional args."],"exampleFix":"// before\nStride.Core.Tasks pack-assets MyGame.csproj\n// after\nStride.Core.Tasks pack-assets MyGame.csproj \"bin\\Intermediate\"","handlingStrategy":"validation","validationCode":"if (args.Length < 3 || args[0] != \"pack-assets\")\n{\n    Console.WriteLine(\"Usage: Stride.Core.Tasks pack-assets <csproj> <intermediatePath> [--pack-asset-assembly=<dll>]...\");\n    return 1;\n}","typeGuard":null,"tryCatchPattern":"try { return RealMain(args); }\ncatch (OptionException ex) { Console.Error.WriteLine(ex.Message + \" — expected: pack-assets <csproj> <intermediatePath>\"); return 1; }","preventionTips":["Always supply both csproj and intermediate package path","Quote paths containing spaces","Pass assemblies via --pack-asset-assembly= flags, not positionally"],"tags":["cli","missing-argument"],"backgroundTag":"missing-required-argument","analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}