Browse Source

Merge branch 'master' into newNR

Conflicts:
	src/AddIns/Misc/PackageManagement/Project/PackageManagement.addin
	src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs
	src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
	src/Main/Base/Project/Src/Project/Behaviors/DotNetStartBehavior.cs
	src/Main/Base/Project/Src/Services/IconService.cs
	src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
	src/Main/Base/Test/MimeDetectionTests.cs
pull/59/merge
Matt Ward 12 years ago
parent
commit
80984a870f
  1. 19
      src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonComponentWalker.cs
  2. 62
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/AssignmentAfterFormClassTests.cs
  3. 1
      src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj
  4. 12
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs
  5. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/DefaultPlacementBehavior.cs
  6. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RenderTransformOriginExtension.cs
  7. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs
  8. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ThumbnailView/ThumbnailView.cs
  9. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs
  10. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/NameScopeHelper.cs
  11. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/CustomInstanceFactory.cs
  12. 5
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakeNuGetCorePackageManager.cs
  13. 2
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs
  14. 24
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.addin
  15. 4
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  16. 13
      src/AddIns/Misc/PackageManagement/Project/PostBuildEvent.proj
  17. 8
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
  18. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManager.cs
  19. 14
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeProjectManager.cs
  20. 2
      src/AddIns/Misc/PackageManagement/Project/Src/IMessageViewCategory.cs
  21. 3
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementOutputMessagesView.cs
  22. 2
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs
  23. 21
      src/AddIns/Misc/PackageManagement/Project/Src/NuGetExePath.cs
  24. 31
      src/AddIns/Misc/PackageManagement/Project/Src/NuGetPackageRestoreCommandLine.cs
  25. 5
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementMessageViewCategory.cs
  26. 12
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementOutputMessagesView.cs
  27. 6
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
  28. 4
      src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSources.cs
  29. 62
      src/AddIns/Misc/PackageManagement/Project/Src/RestorePackagesCommand.cs
  30. 26
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunAllProjectPackageScriptsAction.cs
  31. 6
      src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs
  32. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/Microsoft.Web.XmlTransform.dll
  33. 2
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Cmdlets.dll-Help.xml
  34. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Console.Types.dll
  35. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Core.dll
  36. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.exe
  37. 1
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  38. 3
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeMessageCategoryView.cs
  39. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementOutputMessagesView.cs
  40. 4
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageReferenceFile.cs
  41. 4
      src/AddIns/Misc/PackageManagement/Test/Src/InstalledPackagesViewModelTests.cs
  42. 37
      src/AddIns/Misc/PackageManagement/Test/Src/NuGetPackageRestoreCommandLineTests.cs
  43. 21
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs
  44. 17
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsViewModelTests.cs
  45. 17
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOutputMessagesViewTests.cs
  46. 6
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs
  47. 2
      src/AddIns/Misc/PackageManagement/Test/Src/PackageReferenceInstallerTests.cs
  48. 12
      src/AddIns/Misc/PackageManagement/Test/Src/RunAllProjectPackageScriptsActionTests.cs
  49. 20
      src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs
  50. 2
      src/AddIns/Misc/PackageManagement/Test/Src/UpdatePackageInAllProjectsTests.cs
  51. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  52. 2
      src/Main/Base/Project/Src/Project/Behaviors/DotNetStartBehavior.cs
  53. 50
      src/Main/Base/Project/Src/Services/FileIconService.cs
  54. 9
      src/Main/Base/Project/Src/Services/IconService.cs
  55. 1
      src/Main/Base/Project/Util/MimeTypeDetection.cs
  56. 3
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  57. 1
      src/Main/Base/Test/MimeDetectionTests.cs
  58. 1
      src/Main/Base/Test/mime_bug1.txt
  59. 3
      src/Setup/Files.wxs
  60. 1
      src/Setup/Setup.wxs

19
src/AddIns/BackendBindings/Python/PythonBinding/Project/Src/PythonComponentWalker.cs

@ -31,6 +31,7 @@ namespace ICSharpCode.PythonBinding @@ -31,6 +31,7 @@ namespace ICSharpCode.PythonBinding
string componentName = String.Empty;
PythonCodeDeserializer deserializer;
ClassDefinition classDefinition;
bool walkingInitializeComponentMethod;
public PythonComponentWalker(IComponentCreator componentCreator)
{
@ -48,7 +49,7 @@ namespace ICSharpCode.PythonBinding @@ -48,7 +49,7 @@ namespace ICSharpCode.PythonBinding
ast.Walk(this);
// Did we find the InitializeComponent method?
if (!FoundInitializeComponentMethod) {
if (component == null) {
throw new PythonComponentWalkerException("Unable to find InitializeComponents method.");
}
return component;
@ -88,14 +89,16 @@ namespace ICSharpCode.PythonBinding @@ -88,14 +89,16 @@ namespace ICSharpCode.PythonBinding
if (reader != null) {
reader.Dispose();
}
walkingInitializeComponentMethod = true;
node.Body.Walk(this);
walkingInitializeComponentMethod = false;
}
return false;
}
public override bool Walk(AssignmentStatement node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -120,7 +123,7 @@ namespace ICSharpCode.PythonBinding @@ -120,7 +123,7 @@ namespace ICSharpCode.PythonBinding
public override bool Walk(ConstantExpression node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -130,7 +133,7 @@ namespace ICSharpCode.PythonBinding @@ -130,7 +133,7 @@ namespace ICSharpCode.PythonBinding
public override bool Walk(CallExpression node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -144,7 +147,7 @@ namespace ICSharpCode.PythonBinding @@ -144,7 +147,7 @@ namespace ICSharpCode.PythonBinding
public override bool Walk(NameExpression node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -159,7 +162,7 @@ namespace ICSharpCode.PythonBinding @@ -159,7 +162,7 @@ namespace ICSharpCode.PythonBinding
/// </summary>
public override bool Walk(AugmentedAssignStatement node)
{
if (!FoundInitializeComponentMethod) {
if (!walkingInitializeComponentMethod) {
return false;
}
@ -357,10 +360,6 @@ namespace ICSharpCode.PythonBinding @@ -357,10 +360,6 @@ namespace ICSharpCode.PythonBinding
return null;
}
bool FoundInitializeComponentMethod {
get { return component != null; }
}
/// <summary>
/// Returns true if the expression is of the form:
///

62
src/AddIns/BackendBindings/Python/PythonBinding/Test/Designer/AssignmentAfterFormClassTests.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
// 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.Resources;
using ICSharpCode.Core;
using NUnit.Framework;
namespace PythonBinding.Tests.Designer
{
/// <summary>
/// Tests that only the InitializeComponents method is processed
/// when walking the AST.
/// </summary>
[TestFixture]
public class AssignmentAfterFormClassTests : LoadFormTestFixtureBase
{
public override void BeforeSetUpFixture()
{
var rm = new ResourceManager("PythonBinding.Tests.Strings", GetType().Assembly);
ResourceService.RegisterNeutralStrings(rm);
}
public override string PythonCode {
get {
return
"import clr\r\n" +
"clr.AddReference('System.Windows.Forms')\r\n" +
"clr.AddReference('System.Drawing')\r\n" +
"\r\n" +
"import System.Drawing\r\n" +
"import System.Windows.Forms\r\n" +
"\r\n" +
"from System.Drawing import *\r\n" +
"from System.Windows.Forms import *\r\n" +
"\r\n" +
"class MainForm(System.Windows.Forms.Form):\r\n" +
" def __init__(self):\r\n" +
" self.InitializeComponent()\r\n" +
" \r\n" +
" def InitializeComponent(self):\r\n" +
" self.SuspendLayout()\r\n" +
" # \r\n" +
" # MainForm\r\n" +
" # \r\n" +
" self.ClientSize = System.Drawing.Size(300, 400)\r\n" +
" self.Name = \"MainForm\"\r\n" +
" self.ResumeLayout(False)\r\n" +
"\r\n" +
"test = MainForm()\r\n" +
"Application.Run(test)\r\n" +
"\r\n";
}
}
[Test]
public void MainFormName()
{
Assert.AreEqual("MainForm", Form.Name);
}
}
}

1
src/AddIns/BackendBindings/Python/PythonBinding/Test/PythonBinding.Tests.csproj

@ -183,6 +183,7 @@ @@ -183,6 +183,7 @@
<Compile Include="Converter\VBStringConcatTestFixture.cs" />
<Compile Include="Converter\WhileLoopConversionTestFixture.cs" />
<Compile Include="Converter\XmlDocCommentConversionTestFixture.cs" />
<Compile Include="Designer\AssignmentAfterFormClassTests.cs" />
<Compile Include="Designer\CallBeginInitOnLoadTestFixture.cs" />
<Compile Include="Designer\ConvertCustomClassUsingTypeConverterTestFixture.cs" />
<Compile Include="Designer\CursorTypeResolutionTestFixture.cs" />

12
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/ToolboxProvider.cs

@ -177,7 +177,7 @@ namespace ICSharpCode.FormsDesigner @@ -177,7 +177,7 @@ namespace ICSharpCode.FormsDesigner
LoggingService.Debug("Checking project reference: " + referenceItem.Include);
if (referenceItem.HintPath.Length > 0 && File.Exists(referenceItem.FileName)) {
LoggingService.Debug("Checking assembly reference");
AssemblyName assemblyName = AssemblyName.GetAssemblyName(referenceItem.FileName);
AssemblyName assemblyName = GetAssemblyName(referenceItem.FileName);
if (assemblyName != null && assemblyName.FullName == referenceName.FullName) {
isAlreadyInRefFolder = true;
break;
@ -196,6 +196,16 @@ namespace ICSharpCode.FormsDesigner @@ -196,6 +196,16 @@ namespace ICSharpCode.FormsDesigner
return isAlreadyInRefFolder;
}
static AssemblyName GetAssemblyName(string fileName)
{
try {
return AssemblyName.GetAssemblyName(fileName);
} catch (Exception ex) {
LoggingService.Debug(ex.ToString());
}
return null;
}
static void AddReferenceToProject(IProject project, AssemblyName referenceName)
{
LoggingService.Warn("Adding reference to project: " + referenceName.FullName);

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/DefaultPlacementBehavior.cs

@ -21,6 +21,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -21,6 +21,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
[ExtensionFor(typeof(ContentControl))]
[ExtensionFor(typeof(Border))]
[ExtensionFor(typeof(Viewbox))]
[ExtensionFor(typeof(ItemsControl))]
public class DefaultPlacementBehavior : BehaviorExtension, IPlacementBehavior
{
static List<Type> _contentControlsNotAllowedToAdd;

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RenderTransformOriginExtension.cs

@ -47,6 +47,12 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -47,6 +47,12 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
adornerPanel.Children.Add(renderTransformOriginThumb);
renderTransformOriginThumb.DragDelta += new DragDeltaEventHandler(renderTransformOriginThumb_DragDelta);
renderTransformOriginThumb.DragCompleted += new DragCompletedEventHandler(renderTransformOriginThumb_DragCompleted);
}
void renderTransformOriginThumb_DragCompleted(object sender, DragCompletedEventArgs e)
{
this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(Math.Round(renderTransformOrigin.X, 4), Math.Round(renderTransformOrigin.Y, 4)));
}
void renderTransformOriginThumb_DragDelta(object sender, DragDeltaEventArgs e)
@ -55,8 +61,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -55,8 +61,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
var pointAbs = adornerPanel.RelativeToAbsolute(new Vector(p.XRelativeToContentWidth, p.YRelativeToContentHeight));
var pointAbsNew = pointAbs + new Vector(e.HorizontalChange, e.VerticalChange);
var pRel = adornerPanel.AbsoluteToRelative(pointAbsNew);
renderTransformOrigin = new Point(pRel.X, pRel.Y);
this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(Math.Round(pRel.X, 4), Math.Round(pRel.Y, 4)));
this.ExtendedItem.View.SetValue(FrameworkElement.RenderTransformOriginProperty, renderTransformOrigin);
//this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(Math.Round(pRel.X, 4), Math.Round(pRel.Y, 4)));
}
Point renderTransformOrigin = new Point(0.5, 0.5);

13
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs

@ -26,16 +26,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -26,16 +26,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
readonly DesignItem[] extendedItemArray = new DesignItem[1];
IPlacementBehavior resizeBehavior;
PlacementOperation operation;
ChangeGroup changeGroup;
bool _isResizing;
/// <summary>
/// Gets whether this extension is resizing any element.
/// </summary>
public bool IsResizing{
get { return _isResizing; }
}
public RotateThumbExtension()
{
@ -62,15 +52,12 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -62,15 +52,12 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
return rotateThumb;
}
Size oldSize;
#region Rotate
private Point centerPoint;
private UIElement parent;
private Vector startVector;
private RotateTransform rotateTransform;
private Point renderTransformOrigin;
private double initialAngle;
private DesignItem rtTransform;
private double angle;

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ThumbnailView/ThumbnailView.cs

@ -113,9 +113,16 @@ namespace ICSharpCode.WpfDesign.Designer.ThumbnailView @@ -113,9 +113,16 @@ namespace ICSharpCode.WpfDesign.Designer.ThumbnailView
}
private void InvalidateScale(out double scale, out double xOffset, out double yOffset)
{
scale = 1;
xOffset = 0;
yOffset = 0;
if (this.DesignSurface.DesignContext != null)
{
var designedElement = this.DesignSurface.DesignContext.RootItem.Component as FrameworkElement;
var fac1 = designedElement.ActualWidth / zoomCanvas.ActualWidth;
var fac2 = designedElement.ActualHeight / zoomCanvas.ActualHeight;
@ -147,6 +154,7 @@ namespace ICSharpCode.WpfDesign.Designer.ThumbnailView @@ -147,6 +154,7 @@ namespace ICSharpCode.WpfDesign.Designer.ThumbnailView
xOffset += (x - scale * w) / 2;
yOffset += (y - scale * h) / 2;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs

@ -70,7 +70,7 @@ namespace ICSharpCode.WpfDesign.Tests.Designer @@ -70,7 +70,7 @@ namespace ICSharpCode.WpfDesign.Tests.Designer
private DesignItem IntializePasteOperationsTest()
{
var grid = CreateGridContextWithDesignSurface("<Button Name=\"TestElement\"/><Grid><Button/></Grid><Window/><ListBox/>");
var grid = CreateGridContextWithDesignSurface("<Button Name=\"TestElement\"/><Grid><Button/></Grid><Window/><Image/>");
Assert.IsNotNull(grid);
var xamlConxtext = grid.Context as XamlDesignContext;
if (xamlConxtext != null) {

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/NameScopeHelper.cs

@ -38,6 +38,14 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -38,6 +38,14 @@ namespace ICSharpCode.WpfDesign.XamlDom
}
if (newName != null) {
nameScope.RegisterName(newName, namedObject.Instance);
try{
var prp = namedObject.ElementType.GetProperty(namedObject.RuntimeNameProperty);
if (prp != null)
prp.SetValue(namedObject.Instance, newName, null);
} catch (Exception x) {
Debug.WriteLine(x.Message);
}
}
break;
}

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/CustomInstanceFactory.cs

@ -2,6 +2,8 @@ @@ -2,6 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.ComponentModel;
using System.Windows;
namespace ICSharpCode.WpfDesign.Extensions
{
@ -33,7 +35,11 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -33,7 +35,11 @@ namespace ICSharpCode.WpfDesign.Extensions
/// </summary>
public virtual object CreateInstance(Type type, params object[] arguments)
{
return Activator.CreateInstance(type, arguments);
var instance = Activator.CreateInstance(type, arguments);
var uiElement = instance as UIElement;
if (uiElement != null)
DesignerProperties.SetIsInDesignMode(uiElement, true);
return instance;
}
}

5
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakeNuGetCorePackageManager.cs

@ -151,5 +151,10 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes @@ -151,5 +151,10 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
UninstallPackageWithVersionCallback(packageId, version, forceRemove, removeDependencies);
}
}
public void InstallPackage(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions, bool ignoreWalkInfo)
{
throw new NotImplementedException();
}
}
}

2
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs

@ -189,7 +189,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -189,7 +189,7 @@ namespace ICSharpCode.PackageManagement.Cmdlets
PackageReference CreatePackageReference()
{
return new PackageReference(Id, Version, null, null);
return new PackageReference(Id, Version, null, null, false, false);
}
}
}

24
src/AddIns/Misc/PackageManagement/Project/PackageManagement.addin

@ -24,6 +24,12 @@ @@ -24,6 +24,12 @@
insertafter="AddWebReference"
insertbefore="ShowServiceInBrowser"
class="ICSharpCode.PackageManagement.ManagePackagesCommand"/>
<MenuItem
id="RestorePackages"
label="Restore Packages"
insertafter="AddWebReference"
insertbefore="ShowServiceInBrowser"
class="ICSharpCode.PackageManagement.RestorePackagesCommand"/>
</Condition>
</Path>
@ -36,6 +42,12 @@ @@ -36,6 +42,12 @@
insertafter="AddWebReference"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.ManagePackagesCommand"/>
<MenuItem
id="RestorePackages"
label="Restore Packages"
insertafter="AddWebReference"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.RestorePackagesCommand"/>
</Condition>
</Path>
@ -48,6 +60,12 @@ @@ -48,6 +60,12 @@
insertafter="AddWebReference"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.ManagePackagesCommand"/>
<MenuItem
id="RestorePackages"
label="Restore Packages"
insertafter="AddWebReference"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.RestorePackagesCommand"/>
</Condition>
</Path>
@ -60,6 +78,12 @@ @@ -60,6 +78,12 @@
insertafter="CombineAddMenu"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.ManagePackagesCommand"/>
<MenuItem
id="RestorePackagesForSolution"
label="Restore Packages"
insertafter="CombineAddMenu"
insertbefore="AddSeparator"
class="ICSharpCode.PackageManagement.RestorePackagesCommand"/>
</Condition>
</Path>

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

@ -228,6 +228,8 @@ @@ -228,6 +228,8 @@
<Compile Include="Src\ManagePackagesViewTitle.cs" />
<Compile Include="Src\MSBuildBasedProjectExtensions.cs" />
<Compile Include="Src\IPackageFromRepositoryExtensions.cs" />
<Compile Include="Src\NuGetExePath.cs" />
<Compile Include="Src\NuGetPackageRestoreCommandLine.cs" />
<Compile Include="Src\PackageLicenseViewModel.cs" />
<Compile Include="Src\PackageManagementServiceProvider.cs" />
<Compile Include="Src\IPackageRepositoryExtensions.cs" />
@ -237,6 +239,7 @@ @@ -237,6 +239,7 @@
<Compile Include="Src\ProjectRootElementExtensions.cs" />
<Compile Include="Src\ReducedPackageOperations.cs" />
<Compile Include="Src\ResolveFileConflictEventArgs.cs" />
<Compile Include="Src\RestorePackagesCommand.cs" />
<Compile Include="Src\Scripting\ConsoleHostFileConflictResolver.cs" />
<Compile Include="Src\Scripting\FileConflictAction.cs" />
<Compile Include="Src\Scripting\GlobalMSBuildProjectCollection.cs" />
@ -596,4 +599,5 @@ @@ -596,4 +599,5 @@
<None Include="Resources\license.txt" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<Import Project="PostBuildEvent.proj" />
</Project>

13
src/AddIns/Misc/PackageManagement/Project/PostBuildEvent.proj

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PrepareForRunDependsOn>$(PrepareForRunDependsOn);MyPostBuildTarget</PrepareForRunDependsOn>
</PropertyGroup>
<ItemGroup>
<MyCopyItem Include="$(MSBuildProjectDirectory)\..\RequiredLibraries\NuGet.exe" />
</ItemGroup>
<Target Name="MyPostBuildTarget">
<!-- work around an MSBuild bug in CopyToOutputDirectory that causes this file to be copied -->
<!-- to projects referencing this project even if local copy on that reference is false -->
<Copy SourceFiles="@(MyCopyItem)" DestinationFolder="$(OutputPath)" />
</Target>
</Project>

8
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs

@ -183,12 +183,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -183,12 +183,12 @@ namespace ICSharpCode.PackageManagement.Design
}
}
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoved;
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoving;
public void FirePackageReferenceRemovedEvent(PackageOperationEventArgs e)
public void FirePackageReferenceRemovingEvent(PackageOperationEventArgs e)
{
if (PackageReferenceRemoved != null) {
PackageReferenceRemoved(this, e);
if (PackageReferenceRemoving != null) {
PackageReferenceRemoving(this, e);
}
}

5
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManager.cs

@ -193,5 +193,10 @@ namespace ICSharpCode.PackageManagement.Design @@ -193,5 +193,10 @@ namespace ICSharpCode.PackageManagement.Design
PackagePassedToUpdatePackageReference = package;
SettingsPassedToUpdatePackageReference = settings;
}
public void InstallPackage(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions, bool ignoreWalkInfo)
{
throw new NotImplementedException();
}
}
}

14
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeProjectManager.cs

@ -35,18 +35,18 @@ namespace ICSharpCode.PackageManagement.Design @@ -35,18 +35,18 @@ namespace ICSharpCode.PackageManagement.Design
}
}
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoved;
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoving;
protected virtual void OnPackageReferenceRemoved(IPackage package)
protected virtual void OnPackageReferenceRemoving(IPackage package)
{
if (PackageReferenceRemoved != null) {
PackageReferenceRemoved(this, new PackageOperationEventArgs(package, null, String.Empty));
if (PackageReferenceRemoving != null) {
PackageReferenceRemoving(this, new PackageOperationEventArgs(package, null, String.Empty));
}
}
#pragma warning disable 67
public event EventHandler<PackageOperationEventArgs> PackageReferenceAdding;
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoving;
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoved;
#pragma warning restore 67
public IPackageRepository LocalRepository { get; set; }
@ -87,9 +87,9 @@ namespace ICSharpCode.PackageManagement.Design @@ -87,9 +87,9 @@ namespace ICSharpCode.PackageManagement.Design
OnPackageReferenceAdded(package);
}
public void FirePackageReferenceRemoved(IPackage package)
public void FirePackageReferenceRemoving(IPackage package)
{
OnPackageReferenceRemoved(package);
OnPackageReferenceRemoving(package);
}
public void AddPackageReference(IPackage package, bool ignoreDependencies, bool allowPrereleaseVersions)

2
src/AddIns/Misc/PackageManagement/Project/Src/IMessageViewCategory.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.PackageManagement
{
@ -9,5 +10,6 @@ namespace ICSharpCode.PackageManagement @@ -9,5 +10,6 @@ namespace ICSharpCode.PackageManagement
{
void AppendLine(string text);
void Clear();
IOutputCategory OutputCategory { get; }
}
}

3
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementOutputMessagesView.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Workbench;
using NuGet;
namespace ICSharpCode.PackageManagement
@ -9,5 +10,7 @@ namespace ICSharpCode.PackageManagement @@ -9,5 +10,7 @@ namespace ICSharpCode.PackageManagement
public interface IPackageManagementOutputMessagesView
{
void Clear();
void AppendLine(string message);
IOutputCategory OutputCategory { get; }
}
}

2
src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.PackageManagement @@ -15,7 +15,7 @@ namespace ICSharpCode.PackageManagement
event EventHandler<PackageOperationEventArgs> PackageInstalled;
event EventHandler<PackageOperationEventArgs> PackageUninstalled;
event EventHandler<PackageOperationEventArgs> PackageReferenceAdded;
event EventHandler<PackageOperationEventArgs> PackageReferenceRemoved;
event EventHandler<PackageOperationEventArgs> PackageReferenceRemoving;
string Name { get; }
ILogger Logger { get; set; }

21
src/AddIns/Misc/PackageManagement/Project/Src/NuGetExePath.cs

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
// 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
{
public static class NuGetExePath
{
public static string GetPath()
{
return Path.Combine(GetDirectory(), "NuGet.exe");
}
static string GetDirectory()
{
return Path.GetDirectoryName(typeof(NuGetExePath).Assembly.Location);
}
}
}

31
src/AddIns/Misc/PackageManagement/Project/Src/NuGetPackageRestoreCommandLine.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;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.PackageManagement
{
public class NuGetPackageRestoreCommandLine
{
List<string> arguments = new List<string>();
public NuGetPackageRestoreCommandLine(IPackageManagementSolution solution)
{
GenerateCommandLine(solution);
}
public string Command { get; set; }
public string[] Arguments {
get { return arguments.ToArray(); }
}
void GenerateCommandLine(IPackageManagementSolution solution)
{
arguments.Add("restore");
arguments.Add(solution.FileName);
}
}
}

5
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementMessageViewCategory.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.PackageManagement
{
@ -24,5 +25,9 @@ namespace ICSharpCode.PackageManagement @@ -24,5 +25,9 @@ namespace ICSharpCode.PackageManagement
{
messageViewCategory.ClearText();
}
public IOutputCategory OutputCategory {
get { return messageViewCategory; }
}
}
}

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

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.SharpDevelop.Workbench;
using NuGet;
namespace ICSharpCode.PackageManagement
@ -41,12 +42,21 @@ namespace ICSharpCode.PackageManagement @@ -41,12 +42,21 @@ namespace ICSharpCode.PackageManagement
void PackageOperationMessageLogged(object sender, PackageOperationMessageLoggedEventArgs e)
{
string formattedMessage = e.Message.ToString();
messageViewCategory.AppendLine(formattedMessage);
AppendLine(formattedMessage);
}
public void Clear()
{
messageViewCategory.Clear();
}
public void AppendLine(string message)
{
messageViewCategory.AppendLine(message);
}
public IOutputCategory OutputCategory {
get { return messageViewCategory.OutputCategory; }
}
}
}

6
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs

@ -64,9 +64,9 @@ namespace ICSharpCode.PackageManagement @@ -64,9 +64,9 @@ namespace ICSharpCode.PackageManagement
remove { projectManager.PackageReferenceAdded -= value; }
}
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoved {
add { projectManager.PackageReferenceRemoved += value; }
remove { projectManager.PackageReferenceRemoved -= value; }
public event EventHandler<PackageOperationEventArgs> PackageReferenceRemoving {
add { projectManager.PackageReferenceRemoving += value; }
remove { projectManager.PackageReferenceRemoving -= value; }
}
public bool IsPackageInstalled(IPackage package)

4
src/AddIns/Misc/PackageManagement/Project/Src/RegisteredPackageSources.cs

@ -11,8 +11,8 @@ namespace ICSharpCode.PackageManagement @@ -11,8 +11,8 @@ namespace ICSharpCode.PackageManagement
{
public class RegisteredPackageSources : ObservableCollection<PackageSource>
{
public static readonly string DefaultPackageSourceUrl = "https://nuget.org/api/v2/";
public static readonly string DefaultPackageSourceName = "NuGet Official Package Source";
public static readonly string DefaultPackageSourceUrl = "https://www.nuget.org/api/v2/";
public static readonly string DefaultPackageSourceName = "nuget.org";
public static readonly PackageSource DefaultPackageSource =
new PackageSource(DefaultPackageSourceUrl, DefaultPackageSourceName);

62
src/AddIns/Misc/PackageManagement/Project/Src/RestorePackagesCommand.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
// 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;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.PackageManagement
{
public class RestorePackagesCommand : AbstractMenuCommand
{
IPackageManagementOutputMessagesView outputMessagesView;
IPackageManagementSolution solution;
public RestorePackagesCommand()
: this(PackageManagementServices.OutputMessagesView, PackageManagementServices.Solution)
{
}
public RestorePackagesCommand(
IPackageManagementOutputMessagesView outputMessagesView,
IPackageManagementSolution solution)
{
this.outputMessagesView = outputMessagesView;
this.solution = solution;
}
public override void Run()
{
try {
ClearOutputWindow();
BringOutputWindowToFront();
RunRestore();
} catch (Exception ex) {
LoggingService.Debug(ex.ToString());
outputMessagesView.AppendLine(ex.Message);
}
}
void ClearOutputWindow()
{
outputMessagesView.Clear();
}
void BringOutputWindowToFront()
{
CompilerMessageView.Instance.BringToFront();
}
void RunRestore()
{
var commandLine = new NuGetPackageRestoreCommandLine(solution);
commandLine.Command = NuGetExePath.GetPath();
var runner = new ProcessRunner();
runner.WorkingDirectory = Path.GetDirectoryName(solution.FileName);
runner.RunInOutputPadAsync(outputMessagesView.OutputCategory, commandLine.Command, commandLine.Arguments);
}
}
}

26
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunAllProjectPackageScriptsAction.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -22,7 +22,7 @@ namespace ICSharpCode.PackageManagement.Scripting
List<EventHandler<PackageOperationEventArgs>> packageReferenceAddedHandlers =
new List<EventHandler<PackageOperationEventArgs>>();
List<EventHandler<PackageOperationEventArgs>> packageReferenceRemovedHandlers =
List<EventHandler<PackageOperationEventArgs>> packageReferenceRemovingHandlers =
new List<EventHandler<PackageOperationEventArgs>>();
public RunAllProjectPackageScriptsAction(
@ -68,7 +68,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -68,7 +68,7 @@ namespace ICSharpCode.PackageManagement.Scripting
foreach (IPackageManagementProject project in projects) {
RegisterPackageInstalledEvent(project);
RegisterPackageReferenceAddedEvent(project);
RegisterPackageReferenceRemovedEvent(project);
RegisterPackageReferenceRemovingEvent(project);
}
}
@ -88,12 +88,12 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -88,12 +88,12 @@ namespace ICSharpCode.PackageManagement.Scripting
project.PackageReferenceAdded += referenceAddedHandler;
}
void RegisterPackageReferenceRemovedEvent(IPackageManagementProject project)
void RegisterPackageReferenceRemovingEvent(IPackageManagementProject project)
{
EventHandler<PackageOperationEventArgs> referenceRemovedHandler =
(_, e) => PackageReferenceRemoved(project, e);
packageReferenceRemovedHandlers.Add(referenceRemovedHandler);
project.PackageReferenceRemoved += referenceRemovedHandler;
EventHandler<PackageOperationEventArgs> referenceRemovingHandler =
(_, e) => PackageReferenceRemoving(project, e);
packageReferenceRemovingHandlers.Add(referenceRemovingHandler);
project.PackageReferenceRemoving += referenceRemovingHandler;
}
void UnregisterEvents()
@ -101,7 +101,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -101,7 +101,7 @@ namespace ICSharpCode.PackageManagement.Scripting
foreach (IPackageManagementProject project in projects) {
UnregisterPackageInstalledEvent(project);
UnregisterPackageReferenceAddedEvent(project);
UnregisterPackageReferenceRemovedEvent(project);
UnregisterPackageReferenceRemovingEvent(project);
}
}
@ -119,11 +119,11 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -119,11 +119,11 @@ namespace ICSharpCode.PackageManagement.Scripting
project.PackageReferenceAdded -= handler;
}
void UnregisterPackageReferenceRemovedEvent(IPackageManagementProject project)
void UnregisterPackageReferenceRemovingEvent(IPackageManagementProject project)
{
EventHandler<PackageOperationEventArgs> handler = packageReferenceRemovedHandlers.First();
packageReferenceRemovedHandlers.Remove(handler);
project.PackageReferenceRemoved -= handler;
EventHandler<PackageOperationEventArgs> handler = packageReferenceRemovingHandlers.First();
packageReferenceRemovingHandlers.Remove(handler);
project.PackageReferenceRemoving -= handler;
}
void PackageInstalled(IPackageManagementProject project, PackageOperationEventArgs e)
@ -136,7 +136,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -136,7 +136,7 @@ namespace ICSharpCode.PackageManagement.Scripting
RunInstallScript(project, e);
}
void PackageReferenceRemoved(IPackageManagementProject project, PackageOperationEventArgs e)
void PackageReferenceRemoving(IPackageManagementProject project, PackageOperationEventArgs e)
{
RunUninstallScript(project, e);
}

6
src/AddIns/Misc/PackageManagement/Project/Src/Scripting/RunPackageScriptsAction.cs

@ -39,14 +39,14 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -39,14 +39,14 @@ namespace ICSharpCode.PackageManagement.Scripting
{
project.PackageInstalled += PackageInstalled;
project.PackageReferenceAdded += PackageReferenceAdded;
project.PackageReferenceRemoved += PackageReferenceRemoved;
project.PackageReferenceRemoving += PackageReferenceRemoving;
}
void UnregisterEvents()
{
project.PackageInstalled -= PackageInstalled;
project.PackageReferenceAdded -= PackageReferenceAdded;
project.PackageReferenceRemoved -= PackageReferenceRemoved;
project.PackageReferenceRemoving -= PackageReferenceRemoving;
}
void PackageInstalled(object sender, PackageOperationEventArgs e)
@ -54,7 +54,7 @@ namespace ICSharpCode.PackageManagement.Scripting @@ -54,7 +54,7 @@ namespace ICSharpCode.PackageManagement.Scripting
RunInitScript(e);
}
void PackageReferenceRemoved(object sender, PackageOperationEventArgs e)
void PackageReferenceRemoving(object sender, PackageOperationEventArgs e)
{
RunUninstallScript(e);
}

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/Microsoft.Web.XmlTransform.dll

Binary file not shown.

2
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Cmdlets.dll-Help.xml

@ -702,7 +702,7 @@ @@ -702,7 +702,7 @@
Description
------------------------------------------------------------------
Updates every package in the project, MvcApplication1, to the latest "safe" version. For example,
For example, if version 1.0.0 of a package is installed, and versions 1.0.1, 1.0.2, and 1.1 are
if version 1.0.0 of a package is installed, and versions 1.0.1, 1.0.2, and 1.1 are
available in the feed, the -Safe flag updates the package to 1.0.2.
</maml:para>
<maml:para></maml:para>

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Console.Types.dll

Binary file not shown.

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Core.dll

Binary file not shown.

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.exe

Binary file not shown.

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

@ -202,6 +202,7 @@ @@ -202,6 +202,7 @@
<Compile Include="Src\Helpers\TestablePowerShellMissingConsoleHost.cs" />
<Compile Include="Src\InstallProjectTemplatePackagesCommandTests.cs" />
<Compile Include="Src\ManagePackagesUserPromptsTests.cs" />
<Compile Include="Src\NuGetPackageRestoreCommandLineTests.cs" />
<Compile Include="Src\OpenMSBuildProjectsTests.cs" />
<Compile Include="Src\PackageManagementServiceProviderTests.cs" />
<Compile Include="Src\PackageViewModelOperationLoggerTests.cs" />

3
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeMessageCategoryView.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement;
using ICSharpCode.SharpDevelop.Workbench;
namespace PackageManagement.Tests.Helpers
{
@ -26,5 +27,7 @@ namespace PackageManagement.Tests.Helpers @@ -26,5 +27,7 @@ namespace PackageManagement.Tests.Helpers
{
IsClearCalled = true;
}
public IOutputCategory OutputCategory { get; set; }
}
}

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageManagementOutputMessagesView.cs

@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement;
using ICSharpCode.SharpDevelop.Workbench;
using NuGet;
namespace PackageManagement.Tests.Helpers
@ -16,5 +17,11 @@ namespace PackageManagement.Tests.Helpers @@ -16,5 +17,11 @@ namespace PackageManagement.Tests.Helpers
{
IsClearCalled = true;
}
public void AppendLine(string message)
{
}
public IOutputCategory OutputCategory { get; set; }
}
}

4
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageReferenceFile.cs

@ -14,7 +14,7 @@ namespace PackageManagement.Tests.Helpers @@ -14,7 +14,7 @@ namespace PackageManagement.Tests.Helpers
public void AddFakePackageReference(string packageId, string version)
{
var packageReference = new PackageReference(packageId, new SemanticVersion(version), null, null);
var packageReference = new PackageReference(packageId, new SemanticVersion(version), null, null, false, false);
FakePackageReferences.Add(packageReference);
}
@ -27,7 +27,7 @@ namespace PackageManagement.Tests.Helpers @@ -27,7 +27,7 @@ namespace PackageManagement.Tests.Helpers
public void DeleteEntry(string id, SemanticVersion version)
{
var packageReference = new PackageReference(id, version, null, null);
var packageReference = new PackageReference(id, version, null, null, false, false);
EntriesDeleted.Add(packageReference);
}

4
src/AddIns/Misc/PackageManagement/Test/Src/InstalledPackagesViewModelTests.cs

@ -100,7 +100,7 @@ namespace PackageManagement.Tests @@ -100,7 +100,7 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageViewModels_PackageReferenceIsRemoved_PackageViewModelsIsUpdated()
public void PackageViewModels_PackageReferenceIsBeingRemoved_PackageViewModelsIsUpdated()
{
CreateViewModel();
FakePackage package = AddPackageToProjectLocalRepository();
@ -159,7 +159,7 @@ namespace PackageManagement.Tests @@ -159,7 +159,7 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageViewModels_PackageReferenceIsRemovedAfterViewModelIsDisposed_PackageViewModelsIsNotUpdated()
public void PackageViewModels_PackageReferenceIsBeingRemovedAfterViewModelIsDisposed_PackageViewModelsIsNotUpdated()
{
CreateViewModel();
FakePackage package = AddPackageToProjectLocalRepository();

37
src/AddIns/Misc/PackageManagement/Test/Src/NuGetPackageRestoreCommandLineTests.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 ICSharpCode.PackageManagement;
using NUnit.Framework;
using Rhino.Mocks;
namespace PackageManagement.Tests
{
[TestFixture]
public class NuGetPackageRestoreCommandLineTests
{
NuGetPackageRestoreCommandLine commandLine;
void CreateCommandLineWithSolution(string fileName)
{
IPackageManagementSolution solution = MockRepository.GenerateStub<IPackageManagementSolution>();
solution.Stub(s => s.FileName).Return(fileName);
commandLine = new NuGetPackageRestoreCommandLine(solution);
}
[Test]
public void Arguments_RestoreSolution_SolutionFullFileNameUsed()
{
CreateCommandLineWithSolution(@"d:\projects\MySolution\MySolution.sln");
string[] arguments = commandLine.Arguments;
string[] expectedArguments = new string[] {
"restore",
@"d:\projects\MySolution\MySolution.sln"
};
CollectionAssert.AreEqual(expectedArguments, arguments);
}
}
}

21
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs

@ -407,13 +407,13 @@ @@ -407,13 +407,13 @@
// }
//
// [Test]
// public void IsPackageRestoreEnabled_PackageRestoreNotInSettings_ReturnsFalse()
// public void IsPackageRestoreEnabled_PackageRestoreNotInSettings_ReturnsTrue()
// {
// CreateOptions();
//
// bool enabled = options.IsPackageRestoreEnabled;
//
// Assert.IsFalse(enabled);
// Assert.IsTrue(enabled);
// }
//
// [Test]
@ -430,7 +430,7 @@ @@ -430,7 +430,7 @@
// }
//
// [Test]
// public void IsPackageRestoreEnabled_OriginallyEnabledInSettingsButSetToTrue_PackageRestoreSectionDeletedFromSettings()
// public void IsPackageRestoreEnabled_OriginallyEnabledInSettingsButSetToTrue_PackageRestoreSectionIsNotDeletedFromSettings()
// {
// CreateSettings();
// EnablePackageRestoreInSettings();
@ -439,7 +439,20 @@ @@ -439,7 +439,20 @@
// options.IsPackageRestoreEnabled = false;
//
// bool deleted = fakeSettings.IsPackageRestoreSectionDeleted;
// Assert.IsTrue(deleted);
// Assert.IsFalse(deleted);
// }
//
// [Test]
// public void IsPackageRestoreEnabled_OriginallyEnabledInSettingsButSetToTrue_PackageRestoreIsFalseInSettings()
// {
// CreateSettings();
// EnablePackageRestoreInSettings();
// CreateOptions(fakeSettings);
//
// options.IsPackageRestoreEnabled = false;
//
// KeyValuePair<string, string> keyValuePair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection();
// Assert.AreEqual("False", keyValuePair.Value);
// }
// }
//}

17
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsViewModelTests.cs

@ -44,6 +44,11 @@ namespace PackageManagement.Tests @@ -44,6 +44,11 @@ namespace PackageManagement.Tests
fakeSettings.SetPackageRestoreSetting(true);
}
void DisablePackageRestoreInOptions()
{
fakeSettings.SetPackageRestoreSetting(false);
}
void CreateViewModelUsingCreatedMachineCache()
{
CreateRecentRepository();
@ -312,10 +317,22 @@ namespace PackageManagement.Tests @@ -312,10 +317,22 @@ namespace PackageManagement.Tests
Assert.IsTrue(result);
}
[Test]
public void IsPackageRestoreEnabled_NotSet_ReturnsTrue()
{
CreateOptions();
CreateViewModel(options);
bool result = viewModel.IsPackageRestoreEnabled;
Assert.IsTrue(result);
}
[Test]
public void IsPackageRestoreEnabled_FalseInOptions_ReturnsFalse()
{
CreateOptions();
DisablePackageRestoreInOptions();
CreateViewModel(options);
bool result = viewModel.IsPackageRestoreEnabled;

17
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOutputMessagesViewTests.cs

@ -3,9 +3,11 @@ @@ -3,9 +3,11 @@
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.SharpDevelop.Workbench;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
using Rhino.Mocks;
namespace PackageManagement.Tests
{
@ -102,5 +104,20 @@ namespace PackageManagement.Tests @@ -102,5 +104,20 @@ namespace PackageManagement.Tests
Assert.AreEqual("Test 1", fakeMessageCategoryView.FirstLineAppended);
}
[Test]
public void OutputCategory_MessageViewCategoryAlreadyCreated_ReturnsOutputCategoryFromMessageViewCategory()
{
CreateCompilerMessageView();
var messageCategoryView = new FakeMessageCategoryView();
IOutputCategory expectedCategory = MockRepository.GenerateStub<IOutputCategory>();
messageCategoryView.OutputCategory = expectedCategory;
fakeCompilerMessageView.GetExistingReturnValue = messageCategoryView;
CreateView(fakeCompilerMessageView);
IOutputCategory outputCategory = view.OutputCategory;
Assert.AreEqual(expectedCategory, outputCategory);
}
}
}

6
src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs

@ -486,14 +486,14 @@ namespace PackageManagement.Tests @@ -486,14 +486,14 @@ namespace PackageManagement.Tests
}
[Test]
public void PackageReferenceRemoved_ProjectManagerPackageReferenceRemovedEventFired_EventFiresWithPackage()
public void PackageReferenceRemoving_ProjectManagerPackageReferenceRemovingEventFired_EventFiresWithPackage()
{
CreateProject();
PackageOperationEventArgs eventArgs = null;
project.PackageReferenceRemoved += (sender, e) => eventArgs = e;
project.PackageReferenceRemoving += (sender, e) => eventArgs = e;
var expectedPackage = new FakePackage();
fakeProjectManager.FirePackageReferenceRemoved(expectedPackage);
fakeProjectManager.FirePackageReferenceRemoving(expectedPackage);
Assert.AreEqual(expectedPackage, eventArgs.Package);
}

2
src/AddIns/Misc/PackageManagement/Test/Src/PackageReferenceInstallerTests.cs

@ -38,7 +38,7 @@ namespace PackageManagement.Tests @@ -38,7 +38,7 @@ namespace PackageManagement.Tests
void AddPackageReference(string packageId, string version)
{
var packageReference = new PackageReference(packageId, new SemanticVersion(version), null, null);
var packageReference = new PackageReference(packageId, new SemanticVersion(version), null, null, false, false);
packageReferences.Add(packageReference);
}

12
src/AddIns/Misc/PackageManagement/Test/Src/RunAllProjectPackageScriptsActionTests.cs

@ -80,9 +80,9 @@ namespace PackageManagement.Tests @@ -80,9 +80,9 @@ namespace PackageManagement.Tests
project.Raise(p => p.PackageReferenceAdded += null, null, eventArgs);
}
void FirePackageReferenceRemovedEvent(IPackageManagementProject project, PackageOperationEventArgs eventArgs)
void FirePackageReferenceRemovingEvent(IPackageManagementProject project, PackageOperationEventArgs eventArgs)
{
project.Raise(p => p.PackageReferenceRemoved += null, null, eventArgs);
project.Raise(p => p.PackageReferenceRemoving += null, null, eventArgs);
}
IPackageScript CreatePackageScript()
@ -292,7 +292,7 @@ namespace PackageManagement.Tests @@ -292,7 +292,7 @@ namespace PackageManagement.Tests
string installPath = @"d:\projects\MyProject\packages\foo";
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(package, installPath);
FirePackageReferenceRemovedEvent(project, eventArgs);
FirePackageReferenceRemovingEvent(project, eventArgs);
scriptFactory.AssertWasCalled(factory => factory.CreatePackageUninstallScript(package, installPath));
}
@ -307,7 +307,7 @@ namespace PackageManagement.Tests @@ -307,7 +307,7 @@ namespace PackageManagement.Tests
SetUninstallScriptToReturnFromScriptFactory(uninstallScript);
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
FirePackageReferenceRemovedEvent(project2, eventArgs);
FirePackageReferenceRemovingEvent(project2, eventArgs);
scriptRunner.AssertWasCalled(runner => runner.Run(uninstallScript));
}
@ -322,7 +322,7 @@ namespace PackageManagement.Tests @@ -322,7 +322,7 @@ namespace PackageManagement.Tests
SetUninstallScriptToReturnFromScriptFactory(uninstallScript);
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
FirePackageReferenceRemovedEvent(project2, eventArgs);
FirePackageReferenceRemovingEvent(project2, eventArgs);
Assert.AreEqual(project2, uninstallScript.Project);
}
@ -337,7 +337,7 @@ namespace PackageManagement.Tests @@ -337,7 +337,7 @@ namespace PackageManagement.Tests
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
action.Dispose();
FirePackageReferenceRemovedEvent(project, eventArgs);
FirePackageReferenceRemovingEvent(project, eventArgs);
scriptRunner.AssertWasNotCalled(runner => runner.Run(uninstallScript));
}

20
src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs

@ -174,11 +174,11 @@ namespace PackageManagement.Tests.Scripting @@ -174,11 +174,11 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void Constructor_PackageReferenceIsRemoved_PackageUninstallScriptIsRun()
public void Constructor_PackageReferenceIsBeingRemoved_PackageUninstallScriptIsRun()
{
CreateAction();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
fakeProject.FirePackageReferenceRemovingEvent(eventArgs);
IPackageScript actualScript = fakeScriptRunner.FirstScriptRun;
FakePackageScript expectedScript = fakeScriptFactory.FirstPackageUninstallScriptCreated;
@ -187,11 +187,11 @@ namespace PackageManagement.Tests.Scripting @@ -187,11 +187,11 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void Constructor_PackageReferenceIsRemoved_PackageUninstallScriptIsCreated()
public void Constructor_PackageReferenceIsBeingRemoved_PackageUninstallScriptIsCreated()
{
CreateAction();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(@"d:\projects\myproject\packages\test");
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
fakeProject.FirePackageReferenceRemovingEvent(eventArgs);
string path = fakeScriptFactory.FirstPackageInstallDirectoryPassed;
@ -199,13 +199,13 @@ namespace PackageManagement.Tests.Scripting @@ -199,13 +199,13 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void Dispose_PackageReferenceIsRemoved_PackageUninstallScriptIsNotRun()
public void Dispose_PackageReferenceIsBeingRemoved_PackageUninstallScriptIsNotRun()
{
CreateAction();
action.Dispose();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
fakeProject.FirePackageReferenceRemovingEvent(eventArgs);
int count = fakeScriptFactory.FakePackageUninstallScriptsCreated.Count;
@ -213,11 +213,11 @@ namespace PackageManagement.Tests.Scripting @@ -213,11 +213,11 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void Constructor_PackageReferenceIsRemoved_UninstallScriptIsPassedProject()
public void Constructor_PackageReferenceIsBeingRemoved_UninstallScriptIsPassedProject()
{
CreateAction();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs();
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
fakeProject.FirePackageReferenceRemovingEvent(eventArgs);
IPackageManagementProject project = fakeScriptFactory.FirstPackageUninstallScriptCreated.Project;
@ -225,12 +225,12 @@ namespace PackageManagement.Tests.Scripting @@ -225,12 +225,12 @@ namespace PackageManagement.Tests.Scripting
}
[Test]
public void Constructor_PackageReferenceIsRemoved_UninstallScriptIsPassedPackageFromPackageOperationEventArgs()
public void Constructor_PackageReferenceIsBeingRemoved_UninstallScriptIsPassedPackageFromPackageOperationEventArgs()
{
CreateAction();
var expectedPackage = new FakePackage();
PackageOperationEventArgs eventArgs = CreatePackageOperationEventArgs(expectedPackage);
fakeProject.FirePackageReferenceRemovedEvent(eventArgs);
fakeProject.FirePackageReferenceRemovingEvent(eventArgs);
IPackage package = fakeScriptFactory.FirstPackageUninstallScriptCreated.Package;

2
src/AddIns/Misc/PackageManagement/Test/Src/UpdatePackageInAllProjectsTests.cs

@ -31,7 +31,7 @@ namespace PackageManagement.Tests @@ -31,7 +31,7 @@ namespace PackageManagement.Tests
{
fakeSolution = new FakePackageManagementSolution();
fakeSourceRepository = new FakePackageRepository();
var packageReference = new PackageReference(packageId, version, null, null);
var packageReference = new PackageReference(packageId, version, null, null, false, false);
updatePackageInAllProjects = new UpdatePackageInAllProjects(packageReference, fakeSolution, fakeSourceRepository);
}

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -558,6 +558,7 @@ @@ -558,6 +558,7 @@
<Compile Include="Src\Services\Debugger\BreakpointBookmarkEventArgs.cs" />
<Compile Include="Workbench\File\IFileService.cs" />
<Compile Include="Workbench\File\OpenedFile.cs" />
<Compile Include="Src\Services\FileIconService.cs" />
<Compile Include="Src\Services\LanguageBinding\DefaultLanguageBinding.cs" />
<Compile Include="Src\Services\LanguageBinding\ILanguageBinding.cs" />
<Compile Include="Src\Services\LanguageBinding\LanguageBindingDoozer.cs" />

2
src/Main/Base/Project/Src/Project/Behaviors/DotNetStartBehavior.cs

@ -114,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -114,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Project
if (fx != null)
UpdateAppConfig(fx);
if (Project.OutputType != OutputType.Library) {
if (DotnetDetection.IsDotnet45Installed() && fx.IsBasedOn(TargetFramework.Net45)) {
if (fx != null && DotnetDetection.IsDotnet45Installed() && fx.IsBasedOn(TargetFramework.Net45)) {
Project.SetProperty(null, Project.ActiveConfiguration.Platform, "Prefer32Bit", "True", PropertyStorageLocations.PlatformSpecific, true);
} else {
Project.SetProperty(null, Project.ActiveConfiguration.Platform, "PlatformTarget", "x86", PropertyStorageLocations.PlatformSpecific, true);

50
src/Main/Base/Project/Src/Services/FileIconService.cs

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
// 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 ICSharpCode.Core;
using System;
using System.Collections.Generic;
using System.Drawing;
namespace ICSharpCode.SharpDevelop
{
/// <summary>
/// This Class handles bitmap resources
/// for the application which were loaded from the filesystem.
/// </summary>
public static class FileIconService
{
static Dictionary<string, Bitmap> bitmapCache = new Dictionary<string, Bitmap>();
/// <summary>
/// Returns a bitmap from the file system. Placeholders like ${SharpDevelopBinPath}
/// and AddinPath (e. g. ${AddInPath:ICSharpCode.FiletypeRegisterer}) are resolved
/// through the StringParser.
/// The bitmaps are reused, you must not dispose the Bitmap!
/// </summary>
/// <returns>
/// The bitmap loaded from the file system.
/// </returns>
/// <param name="name">
/// The name of the requested bitmap (prefix, path and filename).
/// </param>
/// <exception cref="FileNotFoundException">
/// Is thrown when the bitmap was not found in the file system.
/// </exception>
public static Bitmap GetBitmap(string name)
{
Bitmap bmp = null;
if (name.ToUpper().StartsWith("FILE:")) {
lock (bitmapCache) {
if (bitmapCache.TryGetValue(name, out bmp))
return bmp;
string fileName = StringParser.Parse(name.Substring(5, name.Length - 5));
bmp = (Bitmap)Image.FromFile(fileName);
bitmapCache[name] = bmp;
}
}
return bmp;
}
}
}

9
src/Main/Base/Project/Src/Services/IconService.cs

@ -60,17 +60,20 @@ namespace ICSharpCode.SharpDevelop @@ -60,17 +60,20 @@ namespace ICSharpCode.SharpDevelop
public static Bitmap GetBitmap(string name)
{
Bitmap bmp;
Bitmap bmp = null;
try {
bmp = FileIconService.GetBitmap(name);
if (bmp == null) {
bmp = SD.ResourceService.GetBitmap(name);
}
} catch (ResourceNotFoundException ex) {
LoggingService.Warn(ex);
bmp = null;
} catch (FileNotFoundException ex) {
LoggingService.Warn(ex);
}
if (bmp != null) {
return bmp;
}
return SD.ResourceService.GetBitmap("Icons.16x16.MiscFiles");
}

1
src/Main/Base/Project/Util/MimeTypeDetection.cs

@ -53,6 +53,7 @@ namespace ICSharpCode.SharpDevelop @@ -53,6 +53,7 @@ namespace ICSharpCode.SharpDevelop
reader = new StreamReader(stream, Encoding.UTF8);
break;
} else {
stream.Position = 0;
byte[] buffer = new byte[BUFFER_SIZE];
int length = stream.Read(buffer, 0, BUFFER_SIZE);
return FindMimeType(buffer, 0, length);

3
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -204,5 +204,8 @@ @@ -204,5 +204,8 @@
<ItemGroup>
<Folder Include="ProcessRunner" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="mime_bug1.txt" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
</Project>

1
src/Main/Base/Test/MimeDetectionTests.cs

@ -54,6 +54,7 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -54,6 +54,7 @@ namespace ICSharpCode.SharpDevelop.Tests
{
TestMime(LoadFile("ICSharpCode.SharpDevelop.mime_utf-16_be_test.txt"), "text/plain");
TestMime(LoadFile("ICSharpCode.SharpDevelop.mime_utf-16_le_test.txt"), "text/plain");
TestMime(LoadFile("ICSharpCode.SharpDevelop.mime_bug1.txt"), "text/plain");
}
byte[] LoadFile(string resourceName)

1
src/Main/Base/Test/mime_bug1.txt

@ -0,0 +1 @@ @@ -0,0 +1 @@
1<EFBFBD>

3
src/Setup/Files.wxs

@ -1530,6 +1530,9 @@ @@ -1530,6 +1530,9 @@
<Component Id="MicrosoftWebXmlTransformDll" Guid="0A82C51B-E2D1-4817-8704-2CB390B4E833" DiskId="1">
<File Id="Microsoft.Web.XmlTransform.dll" Name="Microsoft.Web.XmlTransform.dll" Source="..\..\AddIns\Misc\PackageManagement\Microsoft.Web.XmlTransform.dll" KeyPath="yes" Assembly=".net" AssemblyApplication="Microsoft.Web.XmlTransform.dll" AssemblyManifest="Microsoft.Web.XmlTransform.dll" />
</Component>
<Component Id="NuGetExe" Guid="47FD372D-7F53-4466-B648-F674C64ED98B" DiskId="1">
<File Id="NuGet.exe" Name="NuGet.exe" Source="..\..\AddIns\Misc\PackageManagement\NuGet.exe" KeyPath="yes" Assembly=".net" AssemblyApplication="NuGet.exe" AssemblyManifest="NuGet.exe" />
</Component>
</Directory>
<Directory Id="TextTemplating" Name="TextTemplating">
<Component Id="MonoTextTemplatingDll" Guid="07BFBED7-FC7B-4CF3-BD00-DCA8E8E7C17B" DiskId="1">

1
src/Setup/Setup.wxs

@ -451,6 +451,7 @@ @@ -451,6 +451,7 @@
<ComponentRef Id="AboutNuGetCmdletsHelpTxt"/>
<ComponentRef Id="NuGetConsoleTypesDll"/>
<ComponentRef Id="NuGetCoreDll"/>
<ComponentRef Id="NuGetExe"/>
<ComponentRef Id="NuGetNuspecSchema"/>
<ComponentRef Id="NuGetLicenseTxt"/>
<ComponentRef Id="PackageFormatPs1Xml"/>

Loading…
Cancel
Save