Browse Source

Support installing SQL Server Compact NuGet package.

pull/15/head
Matt Ward 14 years ago
parent
commit
a3566e1c68
  1. 2
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  2. 31
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/DTE.cs
  3. 25
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs
  4. 22
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Solution.cs
  5. 15
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellHost.cs
  6. 1
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  7. 48
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs
  8. 19
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectTests.cs
  9. 6
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ProjectHelper.cs

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

@ -70,10 +70,12 @@ @@ -70,10 +70,12 @@
<Compile Include="Src\AddPackageReferenceCommand.cs" />
<Compile Include="Src\AggregateExceptionErrorMessage.cs" />
<Compile Include="Src\Design\FakePackageManagementProject.cs" />
<Compile Include="Src\EnvDTE\DTE.cs" />
<Compile Include="Src\EnvDTE\ProjectObject.cs" />
<Compile Include="Src\EnvDTE\Properties.cs" />
<Compile Include="Src\EnvDTE\Property.cs" />
<Compile Include="Src\EnvDTE\References.cs" />
<Compile Include="Src\EnvDTE\Solution.cs" />
<Compile Include="Src\IAddPackageReferenceView.cs" />
<Compile Include="Src\IPackageFromRepository.cs" />
<Compile Include="Src\IPackageManagementEvents.cs" />

31
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/DTE.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
// 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;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public class DTE
{
IPackageManagementProjectService projectService;
public DTE()
: this(new PackageManagementProjectService())
{
}
public DTE(IPackageManagementProjectService projectService)
{
this.projectService = projectService;
}
public Solution Solution {
get {
if (projectService.OpenSolution != null) {
return new Solution(projectService.OpenSolution);
}
return null;
}
}
}
}

25
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Property.cs

@ -25,14 +25,33 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -25,14 +25,33 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
public object Value {
get { return project.GetEvaluatedProperty(name); }
get { return GetProperty(name); }
set {
bool escapeValue = false;
project.SetProperty(name, value as string, escapeValue);
SetProperty(name, value);
SaveProject();
}
}
string GetProperty(string name)
{
string value = project.GetUnevalatedProperty(name);
return EmptyStringIfNull(value);
}
string EmptyStringIfNull(string value)
{
if (value != null) {
return value;
}
return String.Empty;
}
void SetProperty(string name, object value)
{
bool escapeValue = false;
project.SetProperty(name, value as string, escapeValue);
}
void SaveProject()
{
projectService.Save(project);

22
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Solution.cs

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
// 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 SD = ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public class Solution
{
SD.Solution solution;
public Solution(SD.Solution solution)
{
this.solution = solution;
}
public string FullName {
get { return solution.FileName; }
}
}
}

15
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/PowerShellHost.cs

@ -5,10 +5,12 @@ using System; @@ -5,10 +5,12 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Management.Automation;
using System.Management.Automation.Host;
using System.Management.Automation.Runspaces;
using System.Threading;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.Scripting;
namespace ICSharpCode.PackageManagement.Scripting
@ -23,7 +25,6 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -23,7 +25,6 @@ namespace ICSharpCode.PackageManagement.Scripting
Runspace runspace;
PowerShellHostUserInterface userInterface;
List<string> modulesToImport = new List<string>();
//SharpDevelopEnvDTE dte = new SharpDevelopEnvDTE();
public PowerShellHost(IScriptingConsole scriptingConsole)
{
@ -83,12 +84,18 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -83,12 +84,18 @@ namespace ICSharpCode.PackageManagement.Scripting
{
var initialSessionState = InitialSessionState.CreateDefault();
initialSessionState.ImportPSModule(modulesToImport.ToArray());
//var options = ScopedItemOptions.AllScope | ScopedItemOptions.Constant;
//var variable = new SessionStateVariableEntry("DTE", dte, "SharpDevelop DTE object", options);
//initialSessionState.Variables.Add(variable);
SessionStateVariableEntry variable = CreateDTESessionVariable();
initialSessionState.Variables.Add(variable);
return initialSessionState;
}
SessionStateVariableEntry CreateDTESessionVariable()
{
var dte = new DTE();
var options = ScopedItemOptions.AllScope | ScopedItemOptions.Constant;
return new SessionStateVariableEntry("DTE", dte, "SharpDevelop DTE object", options);
}
public override Version Version {
get { return version; }
}

1
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -70,6 +70,7 @@ @@ -70,6 +70,7 @@
<Link>Properties\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Src\AddPackageReferenceCommandTests.cs" />
<Compile Include="Src\EnvDTE\DTETests.cs" />
<Compile Include="Src\EnvDTE\ProjectTests.cs" />
<Compile Include="Src\Helpers\ExceptionThrowingPackageManagementProject.cs" />
<Compile Include="Src\Helpers\ExceptionThrowingRegisteredPackageRepositories.cs" />

48
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
// 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 ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE;
using SD = ICSharpCode.SharpDevelop.Project;
using NUnit.Framework;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class DTETests
{
DTE dte;
FakePackageManagementProjectService fakeProjectService;
void CreateDTE()
{
fakeProjectService = new FakePackageManagementProjectService();
fakeProjectService.OpenSolution = new SD.Solution();
dte = new DTE(fakeProjectService);
}
[Test]
public void SolutionFullName_SolutionIsOpen_ReturnsSolutionFileName()
{
CreateDTE();
string fileName = @"d:\projects\myproject\myproject.sln";
fakeProjectService.OpenSolution.FileName = fileName;
string fullName = dte.Solution.FullName;
Assert.AreEqual(fileName, fullName);
}
[Test]
public void Solution_NoOpenSolution_ReturnsNull()
{
CreateDTE();
fakeProjectService.OpenSolution = null;
var solution = dte.Solution;
Assert.IsNull(solution);
}
}
}

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

@ -54,6 +54,25 @@ namespace PackageManagement.Tests.EnvDTE @@ -54,6 +54,25 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual("Test", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_GetPostBuildEvent_ReturnsUnevaluatedPostBuildEvent()
{
CreateProject();
msbuildProject.SetProperty("PostBuildEvent", "$(SolutionDir)", false);
var postBuildEventProperty = project.Properties.Item("PostBuildEvent").Value;
Assert.AreEqual("$(SolutionDir)", postBuildEventProperty);
}
[Test]
public void PropertiesItemValue_GetNullProperty_ReturnsEmptyString()
{
CreateProject();
var property = project.Properties.Item("TestTestTest").Value;
Assert.AreEqual(String.Empty, property);
}
[Test]
public void PropertiesItemValue_SetPostBuildEvent_UpdatesProjectsPostBuildEvent()
{

6
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ProjectHelper.cs

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PackageManagement.EnvDTE;
using DTE = ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project;
@ -81,10 +81,10 @@ namespace PackageManagement.Tests.Helpers @@ -81,10 +81,10 @@ namespace PackageManagement.Tests.Helpers
return null;
}
public static Project CreateDTEProject()
public static DTE.Project CreateDTEProject()
{
TestableProject msbuildProject = CreateTestProject();
return new Project(msbuildProject);
return new DTE.Project(msbuildProject);
}
}
}

Loading…
Cancel
Save