{"record":{"id":"a98a01064f5e97fd","repo":"stride3d/stride","slug":"cannot-detect-dependencies-of-projet-name-because-the","errorCode":null,"errorMessage":"Cannot detect dependencies of projet '{Name}' because the project file cannot be found.\nProject full path: '{FullPath}'","messagePattern":"Cannot detect dependencies of projet '(.+?)' because the project file cannot be found\\.\nProject full path: '(.+?)'","errorType":"exception","errorClass":"SolutionFileException","httpStatus":null,"severity":"error","filePath":"sources/core/Stride.Core.Design/Solutions/Project.cs","lineNumber":156,"sourceCode":"        {\n            foreach (var propertyLine in Sections[\"ProjectDependencies\"].Properties)\n            {\n                var dependencyGuid = propertyLine.Name;\n                yield return FindProjectInContainer(\n                    solution,\n                    dependencyGuid,\n                    \"Cannot find one of the dependency of project '{0}'.\\nProject guid: {1}\\nDependency guid: {2}\\nReference found in: ProjectDependencies section of the solution file\",\n                    Name,\n                    Guid,\n                    dependencyGuid);\n            }\n        }\n\n        if (TypeGuid == KnownProjectTypeGuid.VisualC)\n        {\n            if (!File.Exists(FullPath))\n            {\n                throw new SolutionFileException($\"Cannot detect dependencies of projet '{Name}' because the project file cannot be found.\\nProject full path: '{FullPath}'\");\n            }\n\n            var docVisualC = new XmlDocument();\n            docVisualC.Load(FullPath);\n\n            foreach (XmlNode xmlNode in docVisualC.SelectNodes(@\"//ProjectReference\"))\n            {\n                var dependencyGuid = xmlNode.Attributes[\"ReferencedProjectIdentifier\"].Value; // TODO handle null\n                XmlNode relativePathToProjectNode = xmlNode.Attributes[\"RelativePathToProject\"];\n                var dependencyRelativePathToProject = relativePathToProjectNode != null ? relativePathToProjectNode.Value : \"???\";\n                yield return FindProjectInContainer(\n                    solution,\n                    dependencyGuid,\n                    \"Cannot find one of the dependency of project '{0}'.\\nProject guid: {1}\\nDependency guid: {2}\\nDependency relative path: '{3}'\\nReference found in: ProjectReference node of file '{4}'\",\n                    Name,\n                    Guid,\n                    dependencyGuid,\n                    dependencyRelativePathToProject,","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/core/Stride.Core.Design/Solutions/Project.cs#L138-L174","documentation":"Project.DetectMissingDependencies for Visual C++ projects (TypeGuid == KnownProjectTypeGuid.VisualC) parses the .vcxproj file on disk with XmlDocument to find ProjectReference entries. If FullPath does not exist the analysis cannot proceed, so the library throws SolutionFileException naming the project and path.","triggerScenarios":"Calling solution/Project dependency detection when a VC++ project entry in the .sln points to a FullPath that is missing on disk (deleted/moved project, bad relative path, case/slash issues on the checked-out tree).","commonSituations":"Cloning only part of a repo; a solution referencing projects outside the repo that were never fetched; running solution analysis on a machine with partial checkouts or after a directory reorganization.","solutions":["Restore the missing project file at the FullPath shown in the exception (git checkout / re-clone)","Fix the project entry path in the .sln so FullPath points at the actual file","Exclude or remove the dangling VC++ project from the solution before analysis","Catch SolutionFileException and skip dependency detection for that project"],"exampleFix":"// before\ngit checkout main;  // project file missing\ndeps = project.DetectDependencies();\n// after\ngit checkout main && git submodule update --init --recursive\nif (File.Exists(project.FullPath)) deps = project.DetectDependencies();","handlingStrategy":"validation","validationCode":"if (project.TypeGuid == KnownProjectTypeGuid.VisualC && !File.Exists(project.FullPath))\n    skip.Add(project); // exclude from dependency detection","typeGuard":"bool HasProjectFile(Project p) => File.Exists(p.FullPath);","tryCatchPattern":"try { deps = project.DetectDependencies(); }\ncatch (SolutionFileException e) { logger.Warn($\"{project.Name}: {e.Message}\"); }","preventionTips":["Run solution analysis on complete checkouts (submodules included)","Validate all project FullPaths exist before scanning the solution","Keep .sln relative paths in sync with the on-disk layout"],"tags":["solution","file-not-found","msbuild"],"backgroundTag":"file-not-found","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"}