{"record":{"id":"9736c343c807b82c","repo":"stride3d/stride","slug":"this-tool-requires-an-input-file-package-project-or-sdbuild","errorCode":null,"errorMessage":"This tool requires an input file (package, project, or .sdbuild manifest), or a --solution-file and --package-id.","messagePattern":"This tool requires an input file \\(package, project, or \\.sdbuild manifest\\), or a --solution-file and --package-id\\.","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs","lineNumber":103,"sourceCode":"                BuildDirectory = Path.GetFullPath(BuildDirectory);\n            }\n            catch (Exception)\n            {\n                throw new ArgumentException(\"The provided path is not a valid path name.\", \"build-path\");\n            }\n\n            if (SlavePipe == null)\n            {\n                if (!string.IsNullOrWhiteSpace(PackageManifestFile))\n                {\n                    if (!File.Exists(PackageManifestFile))\n                        throw new ArgumentException(\"Build manifest [{0}] doesn't exist\".ToFormat(PackageManifestFile), \"packageManifestFile\");\n                }\n                else if (string.IsNullOrWhiteSpace(PackageFile))\n                {\n                    if (string.IsNullOrWhiteSpace(SolutionFile) || PackageId == Guid.Empty)\n                    {\n                        throw new ArgumentException(\"This tool requires an input file (package, project, or .sdbuild manifest), or a --solution-file and --package-id.\", \"inputPackageFile\");\n                    }\n                }\n                else if (!File.Exists(PackageFile))\n                {\n                    throw new ArgumentException(\"Package file [{0}] doesn't exist\".ToFormat(PackageFile), \"inputPackageFile\");\n                }\n            }\n        }\n    }\n}\n","sourceCodeStart":85,"sourceCodeEnd":114,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/assets/Stride.AssetCompiler/PackageBuilderOptions.cs#L85-L114","documentation":"ValidateOptions throws this ArgumentException when no usable input was provided: neither PackageManifestFile, PackageFile, nor a SolutionFile together with a non-empty PackageId. The builder needs at least one of these to know what to build. The 'inputPackageFile' parameter name points at the missing input option.","triggerScenarios":"Running the PackageBuilder tool with none of --package-manifest-file, --input-package-file, or the --solution-file + --package-id pair; e.g. only --solution-file given, or --package-id given with an empty Guid; argument parsing dropped options due to a script bug.","commonSituations":"Incomplete CI pipeline invocations after option renames between Stride versions; scripts where variables feeding the arguments were empty; users assuming the tool builds a whole solution by default (it does not).","solutions":["Pass one explicit input: --package-manifest-file, or --input-package-file, or both --solution-file and --package-id","Verify the variables backing these arguments are non-empty at invocation time","Use a .sdbuild manifest file when multiple assets/packages must be built together","Check the tool's argument parsing/help for the current option names"],"exampleFix":"// before\nStride.AssetCompiler --solution-file=MyGame.sln\n// after\nStride.AssetCompiler --solution-file=MyGame.sln --package-id=8a4c9f20-1111-2222-3333-444455556666","handlingStrategy":"validation","validationCode":"bool hasInput = !string.IsNullOrWhiteSpace(manifestFile)\n    || !string.IsNullOrWhiteSpace(packageFile)\n    || (!string.IsNullOrWhiteSpace(solutionFile) && packageId != Guid.Empty);\nif (!hasInput) throw new ArgumentException(\"Provide a package, project, or .sdbuild manifest (or solution-file + package-id)\");","typeGuard":null,"tryCatchPattern":"try { RunBuilder(options); } catch (ArgumentException ex) when (ex.ParamName == \"inputPackageFile\" && ex.Message.Contains(\"requires an input file\")) { Console.Error.WriteLine(\"No build input supplied; see --help\"); return 1; }","preventionTips":["Always pass one explicit input option to the builder","Assert script variables feeding these options are non-empty","Check the tool help after upgrading Stride to catch renamed options"],"tags":["dotnet","cli","validation"],"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"}