diff --git a/src/Main/Base/Project/Src/Project/Items/ReferenceProjectItem.cs b/src/Main/Base/Project/Src/Project/Items/ReferenceProjectItem.cs index aa7a684017..566f965e67 100644 --- a/src/Main/Base/Project/Src/Project/Items/ReferenceProjectItem.cs +++ b/src/Main/Base/Project/Src/Project/Items/ReferenceProjectItem.cs @@ -121,20 +121,23 @@ namespace ICSharpCode.SharpDevelop.Project public override string FileName { get { if (Project != null) { + string projectDir = Project.Directory; string hintPath = HintPath; - if (hintPath != null && hintPath.Length > 0) { - return Path.Combine(Project.Directory, hintPath); - } - string name = Path.Combine(Project.Directory, Include); - if (File.Exists(name)) { - return name; - } - if (File.Exists(name + ".dll")) { - return name + ".dll"; - } - if (File.Exists(name + ".exe")) { - return name + ".exe"; - } + try { + if (hintPath != null && hintPath.Length > 0) { + return Path.GetFullPath(Path.Combine(projectDir, hintPath)); + } + string name = Path.GetFullPath(Path.Combine(projectDir, Include)); + if (File.Exists(name)) { + return name; + } + if (File.Exists(name + ".dll")) { + return name + ".dll"; + } + if (File.Exists(name + ".exe")) { + return name + ".exe"; + } + } catch {} // ignore errors when path is invalid } return Include; }