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 @@ -56,7 +56,12 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
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 {

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

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

Loading…
Cancel
Save