Browse Source

Allow PowerShell scripts to determine the project type (C# or VB.NET).

pull/15/head
Matt Ward 14 years ago
parent
commit
3c4f59b6eb
  1. 1
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 12
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs
  3. 37
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectType.cs
  4. 33
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs

1
src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj

@ -85,6 +85,7 @@ @@ -85,6 +85,7 @@
<Compile Include="Src\EnvDTE\ProjectObject.cs" />
<Compile Include="Src\EnvDTE\ProjectProperty.cs" />
<Compile Include="Src\EnvDTE\ProjectPropertyFactory.cs" />
<Compile Include="Src\EnvDTE\ProjectType.cs" />
<Compile Include="Src\EnvDTE\Properties.cs" />
<Compile Include="Src\EnvDTE\Property.cs" />
<Compile Include="Src\EnvDTE\Reference.cs" />

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

@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
using System;
using System.Collections.Generic;
using System.IO;
using ICSharpCode.SharpDevelop.Project;
using SD = ICSharpCode.SharpDevelop.Project;
@ -67,6 +69,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -67,6 +69,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
}
public string Type {
get { return GetProjectType(); }
}
string GetProjectType()
{
var projectType = new ProjectType(this);
return projectType.Type;
}
internal MSBuildBasedProject MSBuildProject { get; private set; }
public void Save()

37
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectType.cs

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.IO;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public class ProjectType
{
Project project;
public ProjectType(Project project)
{
this.project = project;
Type = String.Empty;
GetProjectType();
}
void GetProjectType()
{
string extension = GetProjectFileExtension();
if (extension == ".csproj") {
Type = "C#";
} else if (extension == ".vbproj") {
Type = "VB.NET";
}
}
string GetProjectFileExtension()
{
return Path.GetExtension(project.FileName).ToLowerInvariant();
}
public string Type { get; private set; }
}
}

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

@ -55,5 +55,38 @@ namespace PackageManagement.Tests.EnvDTE @@ -55,5 +55,38 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual(expectedFileName, fileName);
}
[Test]
public void Type_ProjectIsCSharpProject_ReturnsCSharp()
{
CreateProject();
msbuildProject.FileName = @"c:\projects\myproject\test.csproj";
string projectType = project.Type;
Assert.AreEqual("C#", projectType);
}
[Test]
public void Type_ProjectIsCSharpProjectWithFileNameInUpperCase_ReturnsCSharp()
{
CreateProject();
msbuildProject.FileName = @"c:\projects\myproject\TEST.CSPROJ";
string projectType = project.Type;
Assert.AreEqual("C#", projectType);
}
[Test]
public void Type_ProjectIsVBProject_ReturnsVBNet()
{
CreateProject();
msbuildProject.FileName = @"c:\projects\myproject\test.vbproj";
string projectType = project.Type;
Assert.AreEqual("VB.NET", projectType);
}
}
}

Loading…
Cancel
Save