Browse Source

EnvDTE.Project's unique name includes the subfolder inside the solution.

pull/28/head
Matt Ward 14 years ago
parent
commit
23cf0286f6
  1. 7
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
  2. 15
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs

7
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs

@ -56,7 +56,12 @@ namespace ICSharpCode.PackageManagement.EnvDTE
} }
public virtual string UniqueName { public virtual string UniqueName {
get { return Path.GetFileName(FileName); } get { return GetUniqueName(); }
}
string GetUniqueName()
{
return FileUtility.GetRelativePath(MSBuildProject.ParentSolution.Directory, FileName);
} }
public virtual string FileName { public virtual string FileName {

15
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs

@ -134,9 +134,10 @@ namespace PackageManagement.Tests.EnvDTE
} }
[Test] [Test]
public void UniqueName_ProjectFileNameHasFullPath_ReturnsProjectFileNameWithoutDirectoryPart() public void UniqueName_ProjectInSameFolderAsSolution_ReturnsProjectFileNameWithoutDirectoryPart()
{ {
CreateProject(); CreateProject();
msbuildProject.ParentSolution.FileName = @"d:\projects\myproject\MyProject.sln";
msbuildProject.FileName = @"d:\projects\myproject\MyProject.csproj"; msbuildProject.FileName = @"d:\projects\myproject\MyProject.csproj";
string name = project.UniqueName; string name = project.UniqueName;
@ -144,6 +145,18 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual("MyProject.csproj", name); Assert.AreEqual("MyProject.csproj", name);
} }
[Test]
public void UniqueName_ProjectInSubDirectoryOfSolutionFolder_ReturnsProjectFileNameWithContainsSubFolder()
{
CreateProject();
msbuildProject.ParentSolution.FileName = @"d:\projects\myproject\MyProject.sln";
msbuildProject.FileName = @"d:\projects\myproject\SubFolder\MyProject.csproj";
string name = project.UniqueName;
Assert.AreEqual(@"SubFolder\MyProject.csproj", name);
}
[Test] [Test]
public void ProjectItemsParent_ParentOfProjectsProjectItems_ReturnsTheProject() public void ProjectItemsParent_ParentOfProjectsProjectItems_ReturnsTheProject()
{ {

Loading…
Cancel
Save