Browse Source

Merge branch 'master' into newNR

Conflicts:
	src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj
	src/AddIns/BackendBindings/WixBinding/Project/Src/Project/WixProject.cs
	src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/CodeView.cs
	src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
	src/AddIns/Misc/PackageManagement/Project/Src/LicenseAcceptanceService.cs
	src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementWorkbench.cs
	src/AddIns/Misc/PackageManagement/Project/Src/SelectProjectsService.cs
	src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableProject.cs
	src/AddIns/Misc/PackageManagement/Test/Src/Scripting/RunPackageScriptsActionTests.cs
	src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopProjectSystemTests.cs
	src/AddIns/Misc/SearchAndReplace/Project/SearchOptions.cs
	src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/SimpleSelection.cs
	src/Main/GlobalAssemblyInfo.cs.template
	src/Setup/Files.wxs
	src/Setup/Setup.wxs
addin-manager-package-subdirectories
Matt Ward 12 years ago
parent
commit
e3a387d4b4
  1. 68
      SharpDevelop.Tests.sln
  2. 1
      data/resources/image/BitmapResources/BitmapResources.res
  3. BIN
      data/resources/image/BitmapResources/backendicons/FSharp/F#.Project.Library.png
  4. 2
      samples/Mono/Mono.AddIn.sln
  5. 2
      samples/Mono/Mono.AddIn/Configuration/AssemblyInfo.cs
  6. 1
      samples/Mono/Mono.AddIn/Mono.addin
  7. 7
      samples/Mono/Mono.AddIn/Templates/CSharp.Console.Project.xpt
  8. 4
      samples/Mono/Mono.AddIn/Templates/CSharpGladeProject.xpt
  9. 4
      samples/Mono/Mono.AddIn/Templates/CSharpGtkProject.xpt
  10. 1
      samples/Mono/Mono.AddIn/Templates/DefaultApp.config
  11. 4
      samples/Mono/Mono.AddIn/Templates/VBNet.Console.Project.xpt
  12. 4
      samples/Mono/Mono.AddIn/Templates/VBNetGtkProject.xpt
  13. 5
      samples/Mono/Mono.Build.Tasks.Tests/Mono.Build.Tasks.Tests.csproj
  14. 46
      samples/Mono/Mono.Build.Tasks/Dmcs.cs
  15. 14
      samples/Mono/Mono.Build.Tasks/GetMonoFrameworkPath.cs
  16. 1
      samples/Mono/Mono.Build.Tasks/Mono.Build.CSharp.targets
  17. 11
      samples/Mono/Mono.Build.Tasks/Mono.Build.Tasks.csproj
  18. 11
      samples/Mono/Mono.Build.Tasks/MonoToolLocationHelper.cs
  19. 113
      samples/Mono/Mono.Build.Tasks/SharpDevelop.Build.Mono.Dmcs.targets
  20. 3
      samples/Mono/Mono.Build.Tasks/TargetMonoFrameworkVersion.cs
  21. 11
      src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj
  22. 21
      src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs
  23. 7
      src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs
  24. 16
      src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp2ConsoleProject.xpt
  25. 45
      src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp2LibraryProject.xpt
  26. 44
      src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp3ConsoleProject.xpt
  27. 47
      src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp3LibraryProject.xpt
  28. 14
      src/AddIns/BackendBindings/WixBinding/Project/Src/Project/WixProject.cs
  29. 1
      src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj
  30. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  31. 2
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakeNuGetCorePackageManager.cs
  32. 12
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakePackage.cs
  33. 1
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/InstalledAddInsViewModelTests.cs
  34. 5
      src/AddIns/Misc/AddInManager2/Project/Src/Model/NuGetPackageManager.cs
  35. 12
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InstallPackageCmdlet.cs
  36. 6
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeProcessPackageActionsCmdlet.cs
  37. 15
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs
  38. 87
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs
  39. 54
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/UpdatePackageCmdletTests.cs
  40. 4
      src/AddIns/Misc/PackageManagement/Packages/AvalonEdit.Sample/AvalonEdit.Sample.nuspec
  41. 5
      src/AddIns/Misc/PackageManagement/Packages/AvalonEdit/AvalonEdit.nuspec
  42. 32
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  43. 13
      src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs
  44. 18
      src/AddIns/Misc/PackageManagement/Project/Src/ConsolePackageActionRunner.cs
  45. 15
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeFileSystem.cs
  46. 12
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeInstallPackageAction.cs
  47. 17
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackage.cs
  48. 50
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
  49. 35
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManager.cs
  50. 9
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeProjectManager.cs
  51. 15
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeProjectSystem.cs
  52. 7
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeRegisteredPackageRepositories.cs
  53. 5
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSelectedProject.cs
  54. 10
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSettings.cs
  55. 12
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUninstallPackageAction.cs
  56. 12
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUpdatePackageAction.cs
  57. 44
      src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs
  58. 63
      src/AddIns/Misc/PackageManagement/Project/Src/FileConflictView.xaml
  59. 32
      src/AddIns/Misc/PackageManagement/Project/Src/FileConflictView.xaml.cs
  60. 48
      src/AddIns/Misc/PackageManagement/Project/Src/FileConflictViewModel.cs
  61. 15
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageAction.cs
  62. 4
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageActionRunner.cs
  63. 10
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageExtensions.cs
  64. 1
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageFromRepository.cs
  65. 4
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementEvents.cs
  66. 8
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs
  67. 3
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementWorkbench.cs
  68. 6
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageOperationResolverFactory.cs
  69. 3
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageViewModelFactory.cs
  70. 12
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageViewModelParent.cs
  71. 5
      src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopPackageManager.cs
  72. 1
      src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopProjectManager.cs
  73. 4
      src/AddIns/Misc/PackageManagement/Project/Src/IUpdatePackageActions.cs
  74. 13
      src/AddIns/Misc/PackageManagement/Project/Src/IUpdatePackageSettings.cs
  75. 18
      src/AddIns/Misc/PackageManagement/Project/Src/IUpdatePackagesAction.cs
  76. 3
      src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackageViewModel.cs
  77. 3
      src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackageViewModelFactory.cs
  78. 11
      src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackagesViewModel.cs
  79. 13
      src/AddIns/Misc/PackageManagement/Project/Src/LicenseAcceptanceService.cs
  80. 62
      src/AddIns/Misc/PackageManagement/Project/Src/MSBuildBasedProjectExtensions.cs
  81. 42
      src/AddIns/Misc/PackageManagement/Project/Src/ManagePackagesUserPrompts.cs
  82. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageActionRunner.cs
  83. 6
      src/AddIns/Misc/PackageManagement/Project/Src/PackageActionsToRun.cs
  84. 18
      src/AddIns/Misc/PackageManagement/Project/Src/PackageFromRepository.cs
  85. 21
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementEvents.cs
  86. 5
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementLogger.cs
  87. 2
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementOptions.cs
  88. 32
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
  89. 21
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementSelectedProjects.cs
  90. 12
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementServices.cs
  91. 19
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementWorkbench.cs
  92. 11
      src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs
  93. 33
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs
  94. 3
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelFactory.cs
  95. 5
      src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModelOperationLogger.cs
  96. 38
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesView.xaml
  97. 63
      src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs
  98. 19
      src/AddIns/Misc/PackageManagement/Project/Src/ParentPackagesOperationEventArgs.cs
  99. 26
      src/AddIns/Misc/PackageManagement/Project/Src/ProcessPackageAction.cs
  100. 3
      src/AddIns/Misc/PackageManagement/Project/Src/ProjectBrowserRefresher.cs
  101. Some files were not shown because too many files have changed in this diff Show More

68
SharpDevelop.Tests.sln

@ -1,8 +1,10 @@ @@ -1,8 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 5.0
# SharpDevelop 4.3
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}"
EndProject
@ -25,6 +27,8 @@ EndProject @@ -25,6 +27,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDevelop", "src\Main\SharpDevelop\SharpDevelop.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{2A232EF1-EB95-41C6-B63A-C106E0C95D3C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "src\Libraries\cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}"
EndProject
@ -54,14 +58,20 @@ EndProject @@ -54,14 +58,20 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Decompiler", "src\Libraries\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
EndProject
@ -90,6 +100,8 @@ EndProject @@ -90,6 +100,8 @@ EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VBBinding", "src\AddIns\BackendBindings\VBBinding\Project\VBBinding.vbproj", "{6D209CBB-D8C1-478A-BC30-D3FC87B7858F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}"
EndProject
@ -104,6 +116,8 @@ EndProject @@ -104,6 +116,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}"
EndProject
@ -116,6 +130,8 @@ EndProject @@ -116,6 +130,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "src\AddIns\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManagement", "PackageManagement", "{485A4CCF-55CF-49F4-BD6D-A22B788C67DA}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\AddIns\Misc\PackageManagement\Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}"
EndProject
@ -130,12 +146,16 @@ EndProject @@ -130,12 +146,16 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Cmdlets.Tests", "src\AddIns\Misc\PackageManagement\Cmdlets\Test\PackageManagement.Cmdlets.Tests.csproj", "{11115C83-3DB1-431F-8B98-59040359238D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddInManager2", "AddInManager2", "{1F88F080-AD7C-4B03-9895-20C26282429D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager2", "src\AddIns\Misc\AddInManager2\Project\AddInManager2.csproj", "{60480C2F-F228-4D86-B98F-AF75A7DCEC34}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager2.Tests", "src\AddIns\Misc\AddInManager2\AddInManager2.Tests\AddInManager2.Tests.csproj", "{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{FEDD3FD9-0480-43CC-913C-4E0876DDA852}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{62033CC6-01CD-47A2-ADFD-188E9C524C0A}"
EndProject
@ -148,6 +168,8 @@ EndProject @@ -148,6 +168,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Irony", "src\AddIns\Misc\Reports\Irony\Irony.csproj", "{47B2D204-C993-4489-8B83-6DA7321CFAE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
EndProject
@ -162,6 +184,8 @@ EndProject @@ -162,6 +184,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpyAddIn", "src\AddIns\DisplayBindings\ILSpyAddIn\ILSpyAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{0F5192F2-0744-4BA9-A074-6BE82D111B8D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}"
EndProject
@ -176,6 +200,8 @@ EndProject @@ -176,6 +200,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
EndProject
@ -192,6 +218,8 @@ EndProject @@ -192,6 +218,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormsDesigner", "src\AddIns\DisplayBindings\FormsDesigner\Project\FormsDesigner.csproj", "{9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
@ -200,6 +228,8 @@ EndProject @@ -200,6 +228,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
EndProject
@ -220,6 +250,8 @@ EndProject @@ -220,6 +250,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQuality", "src\AddIns\Analysis\CodeQuality\CodeQuality.csproj", "{0A029008-4973-4256-9150-9AF12845C547}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{7D16E1F9-0F9F-4A05-A162-A59C05E88B68}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Tests", "src\AddIns\Analysis\Profiler\Tests\Profiler.Tests\Profiler.Tests.csproj", "{DAEA4E6C-02CD-47DA-806B-1FCE1E9675EC}"
EndProject
@ -651,19 +683,24 @@ Global @@ -651,19 +683,24 @@ Global
{D68133BD-1E63-496E-9EDE-4FBDBF77B486} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{6222A3A1-83CE-47A3-A4E4-A018F82D44D8} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{63D3B27A-D966-4902-90B3-30290E1692F1} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{984CC812-9470-4A13-AFF9-CC44068D666C} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{63D3B27A-D966-4902-90B3-30290E1692F1} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{F208FF4F-E5D8-41D5-A7C7-B463976F156E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{E2FD63DA-8478-4066-934C-DA82A852C83A} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{83F15BA7-8478-4664-81BB-A82F146D88B3} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
{E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {E0646C25-36F2-4524-969F-FA621353AB94}
{E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
@ -677,7 +714,6 @@ Global @@ -677,7 +714,6 @@ Global
{85C09AD8-183B-403A-869A-7226646218A9} = {E0646C25-36F2-4524-969F-FA621353AB94}
{CAD4D128-5A67-444B-88AE-37E0AF79C57E} = {E0646C25-36F2-4524-969F-FA621353AB94}
{6D209CBB-D8C1-478A-BC30-D3FC87B7858F} = {E0646C25-36F2-4524-969F-FA621353AB94}
{F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
@ -685,28 +721,27 @@ Global @@ -685,28 +721,27 @@ Global
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{DEFC8584-BEC3-4921-BD0F-40482E450B7B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
{A569DCC1-C608-45FD-B770-4F79335EF154} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{5186325C-DD7F-4246-9BE7-3F384EFBF5A6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{485A4CCF-55CF-49F4-BD6D-A22B788C67DA} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{1F88F080-AD7C-4B03-9895-20C26282429D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{FEDD3FD9-0480-43CC-913C-4E0876DDA852} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B}
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{A406803B-C584-43A3-BCEE-A0BB3132CB5F} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{C3F15E22-5793-4129-AF8C-6229112B86D2} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{56E98A01-8398-4A08-9578-C7337711A52B} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{11115C83-3DB1-431F-8B98-59040359238D} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA}
{1F88F080-AD7C-4B03-9895-20C26282429D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{60480C2F-F228-4D86-B98F-AF75A7DCEC34} = {1F88F080-AD7C-4B03-9895-20C26282429D}
{0D0CB6E5-1EAD-471F-96B9-BFF84057BCF5} = {1F88F080-AD7C-4B03-9895-20C26282429D}
{FEDD3FD9-0480-43CC-913C-4E0876DDA852} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{62033CC6-01CD-47A2-ADFD-188E9C524C0A} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852}
{2EE63FDD-7F49-40BD-8A2E-240848B9FA83} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852}
{0884566C-E013-4185-B223-47547AA75167} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852}
{1491E558-9C19-4EAC-9406-868AB8181F38} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852}
{47B2D204-C993-4489-8B83-6DA7321CFAE0} = {FEDD3FD9-0480-43CC-913C-4E0876DDA852}
{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
@ -714,25 +749,23 @@ Global @@ -714,25 +749,23 @@ Global
{DFB936AD-90EE-4B4F-941E-4F4A636F0D92} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{8AA421C8-D7AF-4957-9F43-5135328ACB24} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{0F5192F2-0744-4BA9-A074-6BE82D111B8D} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{EEF5E054-4192-4A57-8FBF-E860D808A51D} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {0F5192F2-0744-4BA9-A074-6BE82D111B8D}
{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
{943DBBB3-E84E-4CF4-917C-C05AFA8743C1} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
{78CC29AC-CC79-4355-B1F2-97936DF198AC} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
{88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}
{85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{9E951B9F-6AC2-4537-9D0B-0AE7C026D5A1} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}
{A4C858C8-51B6-4265-A695-A20FCEBA1D19} = {AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}
{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1F261725-6318-4434-A1B1-6C70CE4CD324} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}
{44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}
{3EAA45A9-735C-4AC7-A799-947B93EA449D} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}
@ -748,6 +781,5 @@ Global @@ -748,6 +781,5 @@ Global
{CEFF8221-95D8-4F60-9D14-687019D0B2E8} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68}
{BD38E43B-947F-474B-8F6C-8BDAA9EE99A6} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68}
{D7DB55CF-58F8-4164-A6C9-AE7456E5BEF3} = {7D16E1F9-0F9F-4A05-A162-A59C05E88B68}
{E2FD63DA-8478-4066-934C-DA82A852C83A} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
EndGlobalSection
EndGlobal

1
data/resources/image/BitmapResources/BitmapResources.res

@ -516,6 +516,7 @@ Boo.ProjectIcon = backendicons\boo\Boo.ProjectIcon.png @@ -516,6 +516,7 @@ Boo.ProjectIcon = backendicons\boo\Boo.ProjectIcon.png
F#.ProjectIcon = backendicons\FSharp\F#.ProjectIcon.png
F#.FileIcon = backendicons\FSharp\F#.FileIcon.png
F#.Project.DOSProject = backendicons\FSharp\F#.Project.DOSProject.png
F#.Project.Library = backendicons\FSharp\F#.Project.Library.png
F#.File.EmptyClass = backendicons\FSharp\F#.File.EmptyClass.png

BIN
data/resources/image/BitmapResources/backendicons/FSharp/F#.Project.Library.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

2
samples/Mono/Mono.AddIn.sln

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5571
# SharpDevelop 4.3
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.AddIn", "Mono.AddIn\Mono.AddIn.csproj", "{082DCD64-EE32-4151-A50F-E139CF754CC0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Build.Tasks", "Mono.Build.Tasks\Mono.Build.Tasks.csproj", "{BF6F814C-B89F-475E-ADC4-AEE81D10CB94}"

2
samples/Mono/Mono.AddIn/Configuration/AssemblyInfo.cs

@ -29,4 +29,4 @@ using System.Reflection; @@ -29,4 +29,4 @@ using System.Reflection;
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.*")]

1
samples/Mono/Mono.AddIn/Mono.addin

@ -52,6 +52,7 @@ @@ -52,6 +52,7 @@
<Or>
<Condition name="CompareProjectProperty" property="MonoTargetFrameworkVersion" equals="v1.1"/>
<Condition name="CompareProjectProperty" property="MonoTargetFrameworkVersion" equals="v2.0"/>
<Condition name="CompareProjectProperty" property="MonoTargetFrameworkVersion" equals="v4.0"/>
</Or>
<Or>
<Condition name="ProjectActive" activeproject="C#"/>

7
samples/Mono/Mono.AddIn/Templates/CSharp.Console.Project.xpt

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
<?xml version="1.0"?>
<Template originator="Mike Krueger">
<Template originator = "Mike Krueger"
lastModified = "28/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
@ -19,13 +20,15 @@ @@ -19,13 +20,15 @@
<Project language = "C#">
<PropertyGroup>
<OutputType>Exe</OutputType>
<MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
<MonoTargetFrameworkVersion>v4.0</MonoTargetFrameworkVersion>
</PropertyGroup>
<ProjectItems>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ProjectItems>
<Imports clear="True">
<Import Project="$(MonoBuildTasksPath)\Mono.Build.CSharp.targets" />
</Imports>

4
samples/Mono/Mono.AddIn/Templates/CSharpGladeProject.xpt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<?xml version="1.0"?>
<Template originator = "Matt Ward"
created = "01/10/2001"
lastModified = "14/01/2006">
lastModified = "28/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
<Project language = "C#">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
<MonoTargetFrameworkVersion>v4.0</MonoTargetFrameworkVersion>
</PropertyGroup>
<Imports clear="True">

4
samples/Mono/Mono.AddIn/Templates/CSharpGtkProject.xpt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<?xml version="1.0"?>
<Template originator = "Matt Ward"
created = "01/01/2006"
lastModified = "14/06/2006">
lastModified = "28/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
<Project language = "C#">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
<MonoTargetFrameworkVersion>v4.0</MonoTargetFrameworkVersion>
</PropertyGroup>
<Imports clear="True">

1
samples/Mono/Mono.AddIn/Templates/DefaultApp.config

@ -3,7 +3,6 @@ @@ -3,7 +3,6 @@
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

4
samples/Mono/Mono.AddIn/Templates/VBNet.Console.Project.xpt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<?xml version="1.0"?>
<Template originator = "Shinsaku Nakagawa"
created = "11/28/2002"
lastModified = "07/20/2005">
lastModified = "28/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
<Project language = "VBNet">
<PropertyGroup>
<OutputType>Exe</OutputType>
<MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
<MonoTargetFrameworkVersion>v4.0</MonoTargetFrameworkVersion>
</PropertyGroup>
<ProjectItems>

4
samples/Mono/Mono.AddIn/Templates/VBNetGtkProject.xpt

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
<?xml version="1.0"?>
<Template originator = "Matt Ward"
created = "15/02/2006"
lastModified = "15/02/2006">
lastModified = "28/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
<Project language="VBNet">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<MonoTargetFrameworkVersion>v2.0</MonoTargetFrameworkVersion>
<MonoTargetFrameworkVersion>v4.0</MonoTargetFrameworkVersion>
<StartupObject>${StandardNamespace}.MainWindow</StartupObject>
</PropertyGroup>

5
samples/Mono/Mono.Build.Tasks.Tests/Mono.Build.Tasks.Tests.csproj

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<OutputType>Library</OutputType>
<RootNamespace>ICSharpCode.Build.Tasks.Tests</RootNamespace>
@ -17,7 +17,8 @@ @@ -17,7 +17,8 @@
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<OutputPath>bin\UnitTests</OutputPath>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<Optimize>False</Optimize>

46
samples/Mono/Mono.Build.Tasks/Dmcs.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
// SharpDevelop samples
// Copyright (c) 2006, AlphaSierraPapa
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification, are
// permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this list
// of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice, this list
// of conditions and the following disclaimer in the documentation and/or other materials
// provided with the distribution.
//
// - Neither the name of the SharpDevelop team nor the names of its contributors may be used to
// endorse or promote products derived from this software without specific prior written
// permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &AS IS& AND ANY EXPRESS
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
namespace Mono.Build.Tasks
{
/// <summary>
/// MSBuild task for Mono's DMCS.
/// </summary>
public class Dmcs : MonoCSharpCompilerTask
{
protected override string ToolName {
get { return "Dmcs.exe"; }
}
protected override string GenerateFullPathToTool()
{
return MonoToolLocationHelper.GetPathToTool(ToolName);
}
}
}

14
samples/Mono/Mono.Build.Tasks/GetMonoFrameworkPath.cs

@ -38,6 +38,7 @@ namespace Mono.Build.Tasks @@ -38,6 +38,7 @@ namespace Mono.Build.Tasks
{
public const string TargetMonoFrameworkVersion11 = "v1.1";
public const string TargetMonoFrameworkVersion20 = "v2.0";
public const string TargetMonoFrameworkVersion40 = "v4.0";
string path = String.Empty;
TargetMonoFrameworkVersion targetFrameworkVersion = TargetMonoFrameworkVersion.VersionLatest;
@ -76,16 +77,21 @@ namespace Mono.Build.Tasks @@ -76,16 +77,21 @@ namespace Mono.Build.Tasks
return TargetMonoFrameworkVersion11;
case TargetMonoFrameworkVersion.Version20:
return TargetMonoFrameworkVersion20;
case TargetMonoFrameworkVersion.Version40:
return TargetMonoFrameworkVersion40;
}
return null;
}
static TargetMonoFrameworkVersion ConvertToEnum(string frameworkVersion)
{
if (frameworkVersion == TargetMonoFrameworkVersion11) {
return TargetMonoFrameworkVersion.Version11;
} else if (frameworkVersion == TargetMonoFrameworkVersion20) {
return TargetMonoFrameworkVersion.Version20;
switch (frameworkVersion) {
case TargetMonoFrameworkVersion11:
return TargetMonoFrameworkVersion.Version11;
case TargetMonoFrameworkVersion20:
return TargetMonoFrameworkVersion.Version20;
case TargetMonoFrameworkVersion40:
return TargetMonoFrameworkVersion.Version40;
}
throw new ArgumentException("Unknown Mono target framework version: " + frameworkVersion);
}

1
samples/Mono/Mono.Build.Tasks/Mono.Build.CSharp.targets

@ -78,4 +78,5 @@ @@ -78,4 +78,5 @@
<!-- Mono imports -->
<Import Condition=" '$(MonoTargetFrameworkVersion)' == 'v1.1' " Project="$(MonoBuildTasksPath)\SharpDevelop.Build.Mono.Mcs.targets"/>
<Import Condition=" '$(MonoTargetFrameworkVersion)' == 'v2.0' " Project="$(MonoBuildTasksPath)\SharpDevelop.Build.Mono.Gmcs.targets"/>
<Import Condition=" '$(MonoTargetFrameworkVersion)' == 'v4.0' " Project="$(MonoBuildTasksPath)\SharpDevelop.Build.Mono.Dmcs.targets"/>
</Project>

11
samples/Mono/Mono.Build.Tasks/Mono.Build.Tasks.csproj

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{BF6F814C-B89F-475E-ADC4-AEE81D10CB94}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -7,7 +7,8 @@ @@ -7,7 +7,8 @@
<OutputType>Library</OutputType>
<RootNamespace>Mono.Build.Tasks</RootNamespace>
<AssemblyName>Mono.Build.Tasks</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputPath>bin\Debug\</OutputPath>
@ -41,6 +42,7 @@ @@ -41,6 +42,7 @@
<Compile Include="AddMonoAssemblySearchPaths.cs" />
<Compile Include="AssemblyInfo.cs" />
<Compile Include="CompilerCommandLineArguments.cs" />
<Compile Include="Dmcs.cs" />
<Compile Include="GetMonoFrameworkPath.cs" />
<Compile Include="GetMonoFrameworkSdkPath.cs" />
<Compile Include="Gmcs.cs" />
@ -61,6 +63,9 @@ @@ -61,6 +63,9 @@
<None Include="Mono.Build.VBNet.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SharpDevelop.Build.Mono.Dmcs.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="SharpDevelop.Build.Mono.Gmcs.targets">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

11
samples/Mono/Mono.Build.Tasks/MonoToolLocationHelper.cs

@ -45,6 +45,7 @@ namespace Mono.Build.Tasks @@ -45,6 +45,7 @@ namespace Mono.Build.Tasks
static string monoFrameworkAssemblyPath = null;
static string monoFrameworkVersion11Path = null;
static string monoFrameworkVersion20Path = null;
static string monoFrameworkVersion40Path = null;
static bool monoInstalled;
static bool checkedForMonoInstallation;
@ -127,6 +128,8 @@ namespace Mono.Build.Tasks @@ -127,6 +128,8 @@ namespace Mono.Build.Tasks
return GetPathToMonoFrameworkVersion11();
case TargetMonoFrameworkVersion.Version20:
return GetPathToMonoFrameworkVersion20();
case TargetMonoFrameworkVersion.Version40:
return GetPathToMonoFrameworkVersion40();
}
return null;
}
@ -177,6 +180,14 @@ namespace Mono.Build.Tasks @@ -177,6 +180,14 @@ namespace Mono.Build.Tasks
return monoFrameworkVersion20Path;
}
static string GetPathToMonoFrameworkVersion40()
{
if (monoFrameworkVersion40Path == null) {
monoFrameworkVersion40Path = GetPathToMonoFramework(@"mono\4.0");
}
return monoFrameworkVersion40Path;
}
static string GetPathToMonoFramework(string subFolder)
{
string monoFrameworkBaseFolder = GetBasePathToMonoFramework();

113
samples/Mono/Mono.Build.Tasks/SharpDevelop.Build.Mono.Dmcs.targets

@ -0,0 +1,113 @@ @@ -0,0 +1,113 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<UsingTask TaskName="Mono.Build.Tasks.Dmcs"
AssemblyFile="$(MonoBuildTasksPath)\Mono.Build.Tasks.dll"/>
<UsingTask TaskName="Mono.Build.Tasks.GetMonoFrameworkPath"
AssemblyFile="$(MonoBuildTasksPath)\Mono.Build.Tasks.dll"/>
<UsingTask TaskName="Mono.Build.Tasks.GetMonoFrameworkSdkPath"
AssemblyFile="$(MonoBuildTasksPath)\Mono.Build.Tasks.dll"/>
<UsingTask TaskName="Mono.Build.Tasks.AddMonoAssemblySearchPaths"
AssemblyFile="$(MonoBuildTasksPath)\Mono.Build.Tasks.dll"/>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MonoBuildTasksPath)\SharpDevelop.Build.Mono.Dmcs.targets</MSBuildAllProjects>
<DefaultLanguageSourceExtension>.cs</DefaultLanguageSourceExtension>
<Language>C#</Language>
</PropertyGroup>
<!-- Override AssemblySearchPaths property and remove Microsoft specific search paths -->
<PropertyGroup>
<AssemblySearchPaths>
{CandidateAssemblyFiles};
$(ReferencePath);
{HintPathFromItem};
{TargetFrameworkDirectory};
{MonoGAC};
{RawFileName};
$(OutputPath)
</AssemblySearchPaths>
</PropertyGroup>
<Target Name="GetFrameworkPaths">
<!-- Get the path to the target Mono Framework directory. -->
<GetMonoFrameworkPath TargetFrameworkVersion="$(MonoTargetFrameworkVersion)">
<Output TaskParameter="Path" PropertyName="TargetFrameworkDirectory"/>
<Output TaskParameter="Path" ItemName="_TargetFrameworkDirectoryItem"/>
</GetMonoFrameworkPath>
<!-- Get the path to the target the Mono SDK directory. -->
<GetMonoFrameworkSDKPath>
<Output TaskParameter="Path" PropertyName="TargetFrameworkSDKDirectory"/>
<Output TaskParameter="Path" ItemName="_TargetFrameworkSDKDirectoryItem"/>
</GetMonoFrameworkSDKPath>
</Target>
<!-- Modify what the ResolveAssemblyReferences tasks depends on so the
AssemblySearchPaths can be modified to use the Mono GAC -->
<PropertyGroup>
<ResolveAssemblyReferencesDependsOn>
GetFrameworkPaths;
GetReferenceAssemblyPaths;
PrepareForBuild;
AddMonoAssemblySearchPaths
</ResolveAssemblyReferencesDependsOn>
</PropertyGroup>
<Target Name="AddMonoAssemblySearchPaths">
<AddMonoAssemblySearchPaths
Assemblies="@(Reference)"
Paths="$(AssemblySearchPaths)">
<Output TaskParameter="Paths" PropertyName="AssemblySearchPaths"/>
</AddMonoAssemblySearchPaths>
</Target>
<Target
Name="CoreCompile"
Inputs="$(MSBuildAllProjects);
@(Compile);
@(ManifestResourceWithNoCulture);
$(ApplicationIcon);
$(AssemblyOriginatorKeyFile);
@(ManifestNonResxWithNoCultureOnDisk);
@(ReferencePath);
@(CompiledLicenseFile)"
Outputs="@(DocFileItem);
@(IntermediateAssembly);
$(NonExistentFile)"
DependsOnTargets="$(CoreCompileDependsOn)"
>
<Dmcs
AdditionalLibPaths="$(AdditionalLibPaths)"
AddModules="@(AddModules)"
AllowUnsafeBlocks="$(AllowUnsafeBlocks)"
CheckForOverflowUnderflow="$(CheckForOverflowUnderflow)"
CodePage="$(CodePage)"
DebugType="$(DebugType)"
DefineConstants="$(DefineConstants)"
DelaySign="$(DelaySign)"
DisabledWarnings="$(NoWarn)"
DocumentationFile="@(DocFileItem)"
EmitDebugInformation="$(DebugSymbols)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
LangVersion="$(LangVersion)"
MainEntryPoint="$(StartupObject)"
NoConfig="true"
NoLogo="$(NoLogo)"
NoStandardLib="$(NoStdLib)"
Optimize="$(Optimize)"
OutputAssembly="@(IntermediateAssembly)"
References="@(ReferencePath)"
Resources="@(ManifestResourceWithNoCulture);@(ManifestNonResxWithNoCultureOnDisk);@(CompiledLicenseFile)"
ResponseFiles="$(CompilerResponseFile)"
Sources="@(Compile)"
TargetType="$(OutputType)"
ToolPath="$(GmcsToolPath)"
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
WarningLevel="$(WarningLevel)"
Win32Icon="$(ApplicationIcon)"
Win32Resource="$(Win32Resource)" />
</Target>
</Project>

3
samples/Mono/Mono.Build.Tasks/TargetMonoFrameworkVersion.cs

@ -33,6 +33,7 @@ namespace Mono.Build.Tasks @@ -33,6 +33,7 @@ namespace Mono.Build.Tasks
{
Version11 = 0,
Version20 = 1,
VersionLatest = 1
Version40 = 2,
VersionLatest = 2
}
}

11
src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj

@ -72,12 +72,19 @@ @@ -72,12 +72,19 @@
<None Include="FSharpBinding.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<EmbeddedResource Include="Templates\ConsoleProject.xpt">
<EmbeddedResource Include="Templates\EmptyClass.xft">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Templates\EmptyClass.xft">
<EmbeddedResource Include="Templates\FSharp2ConsoleProject.xpt">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Templates\FSharp3LibraryProject.xpt">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Templates\FSharp3ConsoleProject.xpt">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
<EmbeddedResource Include="Templates\FSharp2LibraryProject.xpt" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">

21
src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs

@ -46,9 +46,8 @@ namespace FSharpBinding @@ -46,9 +46,8 @@ namespace FSharpBinding
fsiProcess.StartInfo.FileName = Path.Combine(path, "fsi.exe");
foundCompiler = true;
} else {
string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
path = Path.Combine(programFiles, @"Microsoft F#\v4.0\Fsi.exe");
if (File.Exists(path)) {
path = FindFSharpInteractiveInProgramFilesFolder();
if (path != null) {
fsiProcess.StartInfo.FileName = path;
foundCompiler = true;
} else {
@ -91,6 +90,22 @@ namespace FSharpBinding @@ -91,6 +90,22 @@ namespace FSharpBinding
}
}
string FindFSharpInteractiveInProgramFilesFolder()
{
var fileNames = new string [] {
@"Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe",
@"Microsoft F#\v4.0\Fsi.exe"
};
return FindFirstMatchingFileInProgramFiles(fileNames);
}
string FindFirstMatchingFileInProgramFiles(string[] fileNames)
{
string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
return fileNames.Select(fileName => Path.Combine(programFiles, fileName))
.FirstOrDefault(fullPath => File.Exists(fullPath));
}
void StartFSharp()
{
fsiProcess.Start();

7
src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs

@ -21,13 +21,6 @@ namespace FSharpBinding @@ -21,13 +21,6 @@ namespace FSharpBinding
public FSharpProject(ProjectCreateInformation info) : base(info)
{
try {
base.AddImport(@"$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets", null);
base.ReevaluateIfNecessary(); // provoke exception if import is invalid
} catch (InvalidProjectFileException ex) {
Dispose();
throw new ProjectLoadException("Please ensure that the F# compiler is installed on your computer.\n\n" + ex.Message, ex);
}
}
public override string Language {

16
src/AddIns/BackendBindings/FSharpBinding/Templates/ConsoleProject.xpt → src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp2ConsoleProject.xpt

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
<!-- Template Header -->
<TemplateConfiguration>
<Name>${res:Templates.Project.ConsoleProject.Name}</Name>
<Name>F# 2.0 ${res:Templates.Project.ConsoleProject.Name}</Name>
<Category>F#</Category>
<Icon>F#.Project.DOSProject</Icon>
<Description>${res:Templates.Project.ConsoleProject.Description}</Description>
@ -18,6 +18,20 @@ @@ -18,6 +18,20 @@
<!-- Template Content -->
<Project language = "F#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="FSharp.Core" />
</ProjectItems>
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
<Imports clear="True">
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" />
</Imports>
<Files>
<File name="file.fs"><![CDATA[#light
module MyNamespace.MyModule

45
src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp2LibraryProject.xpt

@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
<?xml version="1.0"?>
<Template originator = "Matt Ward"
created = "15/06/2013"
lastModified = "15/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
<Name>F# 2.0 ${res:Templates.Project.ClassLibrary.Name}</Name>
<Category>F#</Category>
<Icon>F#.Project.Library</Icon>
<Description>${res:Templates.Project.ClassLibrary.Description}</Description>
</TemplateConfiguration>
<!-- Actions -->
<Actions>
<Open filename = "library.fs"/>
</Actions>
<!-- Template Content -->
<Project language = "F#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="FSharp.Core" />
</ProjectItems>
<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>
<Imports clear="True">
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" />
</Imports>
<Files>
<File name="library.fs"><![CDATA[#light
namespace ${StandardNamespace}
type Class1() =
member this.Name = "Class1"
]]></File>
</Files>
</Project>
</Template>

44
src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp3ConsoleProject.xpt

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
<?xml version="1.0"?>
<Template originator = "Robert Pickering"
created = "06/10/2001"
lastModified = "08/02/2012">
<!-- Template Header -->
<TemplateConfiguration>
<Name>F# 3.0 ${res:Templates.Project.ConsoleProject.Name}</Name>
<Category>F#</Category>
<Icon>F#.Project.DOSProject</Icon>
<Description>${res:Templates.Project.ConsoleProject.Description}</Description>
</TemplateConfiguration>
<!-- Actions -->
<Actions>
<Open filename = "file.fs"/>
</Actions>
<!-- Template Content -->
<Project language = "F#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>True</Private>
</Reference>
</ProjectItems>
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
<Imports clear="True">
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
</Imports>
<Files>
<File name="file.fs"><![CDATA[#light
module MyNamespace.MyModule
printfn "Hello world"
]]></File>
</Files>
</Project>
</Template>

47
src/AddIns/BackendBindings/FSharpBinding/Templates/FSharp3LibraryProject.xpt

@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
<?xml version="1.0"?>
<Template originator = "Matt Ward"
created = "15/06/2013"
lastModified = "15/06/2013">
<!-- Template Header -->
<TemplateConfiguration>
<Name>F# 3.0 ${res:Templates.Project.ClassLibrary.Name}</Name>
<Category>F#</Category>
<Icon>F#.Project.Library</Icon>
<Description>${res:Templates.Project.ClassLibrary.Description}</Description>
</TemplateConfiguration>
<!-- Actions -->
<Actions>
<Open filename = "library.fs"/>
</Actions>
<!-- Template Content -->
<Project language = "F#">
<ProjectItems>
<Reference Include="System" />
<Reference Include="FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Private>True</Private>
</Reference>
</ProjectItems>
<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>
<Imports clear="True">
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets" />
</Imports>
<Files>
<File name="library.fs"><![CDATA[#light
namespace ${StandardNamespace}
type Class1() =
member this.Name = "Class1"
]]></File>
</Files>
</Project>
</Template>

14
src/AddIns/BackendBindings/WixBinding/Project/Src/Project/WixProject.cs

@ -7,11 +7,12 @@ using System.Collections.ObjectModel; @@ -7,11 +7,12 @@ using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
using Microsoft.Build.Exceptions;
namespace ICSharpCode.WixBinding
{
@ -42,6 +43,17 @@ namespace ICSharpCode.WixBinding @@ -42,6 +43,17 @@ namespace ICSharpCode.WixBinding
SetProperty("OutputType", "Package");
AddWixTargetsPathProperties();
AddImport(DefaultTargetsFile, null);
CheckWixIsInstalled();
}
void CheckWixIsInstalled()
{
try {
ReevaluateIfNecessary();
} catch (InvalidProjectFileException ex) {
LoggingService.Error(ex);
throw new InvalidProjectFileException(StringParser.Parse("${res:ICSharpCode.WixBinding.WixNotInstalled}"));
}
}
void AddWixTargetsPathProperties()

1
src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj

@ -48,6 +48,7 @@ @@ -48,6 +48,7 @@
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Build" />
<Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference>

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -234,7 +234,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -234,7 +234,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
codeEditorView.TextArea.Caret.PositionChanged += TextAreaCaretPositionChanged;
codeEditorView.TextArea.DefaultInputHandler.CommandBindings.Add(
new CommandBinding(CustomCommands.CtrlSpaceCompletion, OnCodeCompletion));
codeEditorView.TextArea.DefaultInputHandler.NestedInputHandlers.Add(new SearchInputHandler(codeEditorView.TextArea));
SearchPanel.Install(codeEditorView.TextArea);
textView.BackgroundRenderers.Add(textMarkerService);
textView.LineTransformers.Add(textMarkerService);

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

@ -12,6 +12,7 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes @@ -12,6 +12,7 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
{
}
#pragma warning disable 0067
public event EventHandler<NuGet.PackageOperationEventArgs> PackageInstalled;
public event EventHandler<NuGet.PackageOperationEventArgs> PackageInstalling;
@ -19,6 +20,7 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes @@ -19,6 +20,7 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
public event EventHandler<NuGet.PackageOperationEventArgs> PackageUninstalled;
public event EventHandler<NuGet.PackageOperationEventArgs> PackageUninstalling;
#pragma warning restore 0067
public NuGet.IFileSystem FileSystem
{

12
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakePackage.cs

@ -170,5 +170,17 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes @@ -170,5 +170,17 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
{
return null;
}
public System.Collections.Generic.ICollection<PackageReferenceSet> PackageAssemblyReferences {
get {
throw new NotImplementedException();
}
}
public Version MinClientVersion {
get {
throw new NotImplementedException();
}
}
}
}

1
src/AddIns/Misc/AddInManager2/AddInManager2.Tests/InstalledAddInsViewModelTests.cs

@ -24,7 +24,6 @@ namespace ICSharpCode.AddInManager2.Tests @@ -24,7 +24,6 @@ namespace ICSharpCode.AddInManager2.Tests
AddIn _addIn1;
AddIn _addIn1_new;
AddIn _addIn2;
AddIn _addIn2_new;
AddIn _addIn_noVersion;
public InstalledAddInsViewModelTests()

5
src/AddIns/Misc/AddInManager2/Project/Src/Model/NuGetPackageManager.cs

@ -33,6 +33,11 @@ namespace ICSharpCode.AddInManager2.Model @@ -33,6 +33,11 @@ namespace ICSharpCode.AddInManager2.Model
{
_events.OnPackageMessageLogged(new PackageMessageLoggedEventArgs(level, message, args));
}
public FileConflictResolution ResolveFileConflict(string message)
{
return FileConflictResolution.IgnoreAll;
}
}
private NuGetPackageManagerImplementation _packageManager = null;

12
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InstallPackageCmdlet.cs

@ -44,10 +44,20 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -44,10 +44,20 @@ namespace ICSharpCode.PackageManagement.Cmdlets
[Parameter, Alias("Prerelease")]
public SwitchParameter IncludePrerelease { get; set; }
[Parameter]
public FileConflictAction FileConflictAction { get; set; }
protected override void ProcessRecord()
{
ThrowErrorIfProjectNotOpen();
InstallPackage();
using (IConsoleHostFileConflictResolver resolver = CreateFileConflictResolver()) {
InstallPackage();
}
}
IConsoleHostFileConflictResolver CreateFileConflictResolver()
{
return ConsoleHost.CreateFileConflictResolver(FileConflictAction);
}
void InstallPackage()

6
src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InvokeProcessPackageActionsCmdlet.cs

@ -36,18 +36,18 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -36,18 +36,18 @@ namespace ICSharpCode.PackageManagement.Cmdlets
void ExecutePackageActions()
{
ProcessPackageAction action = null;
IPackageAction action = null;
while (GetNextAction(out action)) {
Execute(action);
}
}
bool GetNextAction(out ProcessPackageAction action)
bool GetNextAction(out IPackageAction action)
{
return actionsToRun.GetNextAction(out action);
}
void Execute(ProcessPackageAction action)
void Execute(IPackageAction action)
{
action.PackageScriptRunner = this;
action.Execute();

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

@ -51,9 +51,24 @@ namespace ICSharpCode.PackageManagement.Cmdlets @@ -51,9 +51,24 @@ namespace ICSharpCode.PackageManagement.Cmdlets
[Parameter, Alias("Prerelease")]
public SwitchParameter IncludePrerelease { get; set; }
[Parameter]
public FileConflictAction FileConflictAction { get; set; }
protected override void ProcessRecord()
{
ThrowErrorIfProjectNotOpen();
using (IConsoleHostFileConflictResolver resolver = CreateFileConflictResolver()) {
RunUpdate();
}
}
IConsoleHostFileConflictResolver CreateFileConflictResolver()
{
return ConsoleHost.CreateFileConflictResolver(FileConflictAction);
}
void RunUpdate()
{
if (HasPackageId()) {
if (HasProjectName()) {
UpdatePackageInSingleProject();

87
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs

@ -19,7 +19,6 @@ namespace PackageManagement.Cmdlets.Tests @@ -19,7 +19,6 @@ namespace PackageManagement.Cmdlets.Tests
TestableInstallPackageCmdlet cmdlet;
FakeCmdletTerminatingError fakeTerminatingError;
FakePackageManagementProject fakeProject;
FakeInstallPackageAction fakeInstallPackageAction;
void CreateCmdletWithoutActiveProject()
{
@ -27,7 +26,6 @@ namespace PackageManagement.Cmdlets.Tests @@ -27,7 +26,6 @@ namespace PackageManagement.Cmdlets.Tests
fakeTerminatingError = cmdlet.FakeCmdletTerminatingError;
fakeConsoleHost = cmdlet.FakePackageManagementConsoleHost;
fakeProject = fakeConsoleHost.FakeProject;
fakeInstallPackageAction = fakeProject.FakeInstallPackageAction;
}
void CreateCmdletWithActivePackageSourceAndProject()
@ -90,8 +88,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -90,8 +88,7 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
var actualPackageId = fakeInstallPackageAction.PackageId;
string actualPackageId = fakeProject.LastInstallPackageCreated.PackageId;
Assert.AreEqual("Test", actualPackageId);
}
@ -104,8 +101,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -104,8 +101,7 @@ namespace PackageManagement.Cmdlets.Tests
EnableIgnoreDependenciesParameter();
RunCmdlet();
bool result = fakeInstallPackageAction.IgnoreDependencies;
bool result = fakeProject.LastInstallPackageCreated.IgnoreDependencies;
Assert.IsTrue(result);
}
@ -117,8 +113,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -117,8 +113,7 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
bool result = fakeInstallPackageAction.IgnoreDependencies;
bool result = fakeProject.LastInstallPackageCreated.IgnoreDependencies;
Assert.IsFalse(result);
}
@ -131,8 +126,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -131,8 +126,7 @@ namespace PackageManagement.Cmdlets.Tests
EnablePrereleaseParameter();
RunCmdlet();
bool result = fakeInstallPackageAction.AllowPrereleaseVersions;
bool result = fakeProject.LastInstallPackageCreated.AllowPrereleaseVersions;
Assert.IsTrue(result);
}
@ -144,8 +138,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -144,8 +138,7 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
bool result = fakeInstallPackageAction.AllowPrereleaseVersions;
bool result = fakeProject.LastInstallPackageCreated.AllowPrereleaseVersions;
Assert.IsFalse(result);
}
@ -158,8 +151,8 @@ namespace PackageManagement.Cmdlets.Tests @@ -158,8 +151,8 @@ namespace PackageManagement.Cmdlets.Tests
SetSourceParameter("http://sharpdevelop.net/packages");
RunCmdlet();
var expected = "http://sharpdevelop.net/packages";
var actual = fakeConsoleHost.PackageSourcePassedToGetProject;
string expected = "http://sharpdevelop.net/packages";
string actual = fakeConsoleHost.PackageSourcePassedToGetProject;
Assert.AreEqual(expected, actual);
}
@ -174,8 +167,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -174,8 +167,7 @@ namespace PackageManagement.Cmdlets.Tests
SetVersionParameter(version);
RunCmdlet();
SemanticVersion actualVersion = fakeInstallPackageAction.PackageVersion;
SemanticVersion actualVersion = fakeProject.LastInstallPackageCreated.PackageVersion;
Assert.AreEqual(version, actualVersion);
}
@ -187,8 +179,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -187,8 +179,7 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
var actualVersion = fakeInstallPackageAction.PackageVersion;
SemanticVersion actualVersion = fakeProject.LastInstallPackageCreated.PackageVersion;
Assert.IsNull(actualVersion);
}
@ -230,8 +221,7 @@ namespace PackageManagement.Cmdlets.Tests @@ -230,8 +221,7 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
bool result = fakeInstallPackageAction.IsExecuteCalled;
bool result = fakeProject.LastInstallPackageCreated.IsExecuteCalled;
Assert.IsTrue(result);
}
@ -244,9 +234,62 @@ namespace PackageManagement.Cmdlets.Tests @@ -244,9 +234,62 @@ namespace PackageManagement.Cmdlets.Tests
SetIdParameter("Test");
RunCmdlet();
IPackageScriptRunner scriptRunner = fakeInstallPackageAction.PackageScriptRunner;
IPackageScriptRunner scriptRunner = fakeProject.LastInstallPackageCreated.PackageScriptRunner;
Assert.AreEqual(cmdlet, scriptRunner);
}
[Test]
public void ProcessRecord_FileConflictActionIsOverwrite_FileConflictResolverCreatedWithOverwriteAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
cmdlet.FileConflictAction = FileConflictAction.Overwrite;
RunCmdlet();
Assert.AreEqual(FileConflictAction.Overwrite, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_FileConflictActionIsIgnore_FileConflictResolverCreatedWithIgnoreAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
cmdlet.FileConflictAction = FileConflictAction.Ignore;
RunCmdlet();
Assert.AreEqual(FileConflictAction.Ignore, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_FileConflictActionNotSet_FileConflictResolverCreatedWithNoneFileConflictAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
RunCmdlet();
Assert.AreEqual(FileConflictAction.None, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_PackageIdSpecified_FileConflictResolverIsDisposed()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
RunCmdlet();
fakeConsoleHost.AssertFileConflictResolverIsDisposed();
}
}
}

54
src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/UpdatePackageCmdletTests.cs

@ -715,5 +715,59 @@ namespace PackageManagement.Cmdlets.Tests @@ -715,5 +715,59 @@ namespace PackageManagement.Cmdlets.Tests
Assert.AreEqual(expectedVersion, packageReference.Version);
}
[Test]
public void ProcessRecord_FileConflictActionIsOverwrite_FileConflictResolverCreatedWithOverwriteAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
cmdlet.FileConflictAction = FileConflictAction.Overwrite;
RunCmdlet();
Assert.AreEqual(FileConflictAction.Overwrite, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_FileConflictActionIsIgnore_FileConflictResolverCreatedWithIgnoreAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
cmdlet.FileConflictAction = FileConflictAction.Ignore;
RunCmdlet();
Assert.AreEqual(FileConflictAction.Ignore, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_FileConflictActionNotSet_FileConflictResolverCreatedWithNoneFileConflictAction()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
RunCmdlet();
Assert.AreEqual(FileConflictAction.None, fakeConsoleHost.LastFileConflictActionUsedWhenCreatingResolver);
}
[Test]
public void ProcessRecord_PackageIdSpecified_FileConflictResolverIsDisposed()
{
CreateCmdletWithoutActiveProject();
AddDefaultProjectToConsoleHost();
AddPackageSourceToConsoleHost();
SetIdParameter("Test");
RunCmdlet();
fakeConsoleHost.AssertFileConflictResolverIsDisposed();
}
}
}

4
src/AddIns/Misc/PackageManagement/Packages/AvalonEdit.Sample/AvalonEdit.Sample.nuspec

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>AvalonEdit.Sample</id>
<version>4.3.0.9390</version>
<version>4.3.1.9430</version>
<authors>Daniel Grunwald</authors>
<owners>SharpDevelop</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
@ -16,7 +16,7 @@ StartupUri="/Samples/AvalonEdit/Window1.xaml"</description> @@ -16,7 +16,7 @@ StartupUri="/Samples/AvalonEdit/Window1.xaml"</description>
<summary>Sample code for AvalonEdit the WPF-based text editor used in SharpDevelop 4.0.</summary>
<language>en-US</language>
<dependencies>
<dependency id="AvalonEdit" version="4.3.0.9390" />
<dependency id="AvalonEdit" version="4.3.1.9430" />
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System.Windows.Forms" />

5
src/AddIns/Misc/PackageManagement/Packages/AvalonEdit/AvalonEdit.nuspec

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<id>AvalonEdit</id>
<version>4.3.0.9390</version>
<version>4.3.1.9430</version>
<authors>Daniel Grunwald</authors>
<owners>SharpDevelop</owners>
<licenseUrl>http://www.opensource.org/licenses/lgpl-2.1.php</licenseUrl>
@ -11,7 +11,8 @@ @@ -11,7 +11,8 @@
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>AvalonEdit is the WPF-based text editor used in SharpDevelop. There are two builds of AvalonEdit included in this package. One that targets .NET 4.0 and one that targets .NET 3.5.</description>
<summary>AvalonEdit is the WPF-based text editor used in SharpDevelop</summary>
<releaseNotes>AvalonEdit 4.3 adds support for input method editors (IME); and fixes a major bug that sometimes caused "InvalidOperationException: Trying to build visual line from collapsed line" when updating existing foldings.</releaseNotes>
<releaseNotes>AvalonEdit 4.3 adds support for input method editors (IME); and fixes a major bug that sometimes caused "InvalidOperationException: Trying to build visual line from collapsed line" when updating existing foldings.
AvalonEdit 4.3.1 fixes a bug in IME support - we did not properly re-enable the IME if it was disabled by another WPF control.</releaseNotes>
<language>en-US</language>
<tags>WPF Text Editor SharpDevelop AvalonEdit</tags>
</metadata>

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

@ -42,6 +42,9 @@ @@ -42,6 +42,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Build" />
<Reference Include="Microsoft.Web.XmlTransform">
<HintPath>..\RequiredLibraries\Microsoft.Web.XmlTransform.dll</HintPath>
</Reference>
<Reference Include="NuGet.Console.Types">
<HintPath>..\RequiredLibraries\NuGet.Console.Types.dll</HintPath>
</Reference>
@ -140,10 +143,20 @@ @@ -140,10 +143,20 @@
<Compile Include="Src\EnvDTE\TextDocument.cs" />
<Compile Include="Src\EnvDTE\TextPoint.cs" />
<Compile Include="Src\EnvDTE\Window.cs" />
<Compile Include="Src\FileConflictResolver.cs" />
<Compile Include="Src\FileConflictView.xaml.cs">
<DependentUpon>FileConflictView.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Src\FileConflictViewModel.cs" />
<Compile Include="Src\IClassKindUpdater.cs" />
<Compile Include="Src\IPackageViewModelParent.cs" />
<Compile Include="Src\IUpdatePackagesAction.cs" />
<Compile Include="Src\IPackageExtensions.cs" />
<Compile Include="Src\IPackageAction.cs" />
<Compile Include="Src\IProjectBuilder.cs" />
<Compile Include="Src\IProjectContentExtensions.cs" />
<Compile Include="Src\IUpdatePackageSettings.cs" />
<Compile Include="Src\IVirtualMethodUpdater.cs" />
<Compile Include="Src\IProjectBrowserUpdater.cs" />
<Compile Include="Src\IRefactoringDocumentView.cs" />
@ -215,7 +228,25 @@ @@ -215,7 +228,25 @@
<Compile Include="Src\MSBuildBasedProjectExtensions.cs" />
<Compile Include="Src\PackageLicenseViewModel.cs" />
<Compile Include="Src\PackageManagementServiceProvider.cs" />
<Compile Include="Src\ParentPackagesOperationEventArgs.cs" />
<Compile Include="Src\ProjectBuilder.cs" />
<Compile Include="Src\ProjectRootElementExtensions.cs" />
<Compile Include="Src\ReducedPackageOperations.cs" />
<Compile Include="Src\ResolveFileConflictEventArgs.cs" />
<Compile Include="Src\Scripting\ConsoleHostFileConflictResolver.cs" />
<Compile Include="Src\Scripting\FileConflictAction.cs" />
<Compile Include="Src\Scripting\GlobalMSBuildProjectCollection.cs" />
<Compile Include="Src\Scripting\IConsoleHostFileConflictResolver.cs" />
<Compile Include="Src\Scripting\IGlobalMSBuildProjectCollection.cs" />
<Compile Include="Src\Scripting\MSBuildProjectImportsMerger.cs" />
<Compile Include="Src\Scripting\MSBuildProjectImportsMergeResult.cs" />
<Compile Include="Src\Scripting\NullGlobalMSBuildProjectCollection.cs" />
<Compile Include="Src\Scripting\RunAllProjectPackageScriptsAction.cs" />
<Compile Include="Src\ServiceWithWorkbenchOwner.cs" />
<Compile Include="Src\SharpDevelopCredentialProvider.cs" />
<Compile Include="Src\UpdatePackagesAction.cs" />
<Compile Include="Src\UpdatePackagesActionFactory.cs" />
<Compile Include="Src\UpdateSolutionPackagesAction.cs" />
<Compile Include="Src\OpenMSBuildProjects.cs" />
<Compile Include="Src\PackageActionRunner.cs" />
<Compile Include="Src\PackageActionsToRun.cs" />
@ -468,6 +499,7 @@ @@ -468,6 +499,7 @@
<Compile Include="Src\VisualStudio\VsSolution.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="Src\FileConflictView.xaml" />
<Page Include="Src\ManagePackagesView.xaml" />
<Page Include="Src\LicenseAcceptanceView.xaml" />
<Page Include="Src\PackageManagementOptionsView.xaml" />

13
src/AddIns/Misc/PackageManagement/Project/Src/AvailablePackagesViewModel.cs

@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement @@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement
{
IsSearchable = true;
ShowPackageSources = true;
ShowPrerelease = true;
}
protected override void UpdateRepositoryBeforeReadPackagesTaskStarts()
@ -38,14 +39,12 @@ namespace ICSharpCode.PackageManagement @@ -38,14 +39,12 @@ namespace ICSharpCode.PackageManagement
if (repository == null) {
throw new ApplicationException(errorMessage);
}
if (IncludePrerelease) {
return repository.GetPackages();
}
return repository.GetPackages().Where(package => package.IsLatestVersion);
}
public IQueryable<IPackage> CallGetPackagesFromPackageSource()
{
return GetPackagesFromPackageSource();
}
/// <summary>
/// Order packages by most downloaded first.
/// </summary>
@ -56,6 +55,10 @@ namespace ICSharpCode.PackageManagement @@ -56,6 +55,10 @@ namespace ICSharpCode.PackageManagement
protected override IEnumerable<IPackage> GetFilteredPackagesBeforePagingResults(IQueryable<IPackage> allPackages)
{
if (IncludePrerelease) {
return base.GetFilteredPackagesBeforePagingResults(allPackages)
.DistinctLast(PackageEqualityComparer.Id);
}
return base.GetFilteredPackagesBeforePagingResults(allPackages)
.Where(package => package.IsReleaseVersion())
.DistinctLast(PackageEqualityComparer.Id);

18
src/AddIns/Misc/PackageManagement/Project/Src/ConsolePackageActionRunner.cs

@ -30,16 +30,17 @@ namespace ICSharpCode.PackageManagement @@ -30,16 +30,17 @@ namespace ICSharpCode.PackageManagement
this.workbench = workbench;
}
public void Run(ProcessPackageAction action)
public void Run(IPackageAction action)
{
var actions = new List<ProcessPackageAction>();
var actions = new List<IPackageAction>();
actions.Add(action);
Run(actions);
}
public void Run(IEnumerable<ProcessPackageAction> actions)
public void Run(IEnumerable<IPackageAction> actions)
{
CreateConsolePadIfConsoleHostIsNotRunning();
ShowConsolePad();
AddNewActionsToRun(actions);
InvokeProcessPackageActionsCmdlet();
}
@ -51,14 +52,19 @@ namespace ICSharpCode.PackageManagement @@ -51,14 +52,19 @@ namespace ICSharpCode.PackageManagement
}
}
void AddNewActionsToRun(IEnumerable<ProcessPackageAction> actions)
void ShowConsolePad()
{
foreach (ProcessPackageAction action in actions) {
workbench.ShowConsolePad();
}
void AddNewActionsToRun(IEnumerable<IPackageAction> actions)
{
foreach (IPackageAction action in actions) {
AddNewActionToRun(action);
}
}
void AddNewActionToRun(ProcessPackageAction action)
void AddNewActionToRun(IPackageAction action)
{
packageActionsToRun.AddAction(action);
}

15
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeFileSystem.cs

@ -94,5 +94,20 @@ namespace ICSharpCode.PackageManagement.Design @@ -94,5 +94,20 @@ namespace ICSharpCode.PackageManagement.Design
{
throw new NotImplementedException();
}
public void AddFile(string path, Action<Stream> writeToStream)
{
throw new NotImplementedException();
}
public void MakeFileWritable(string path)
{
throw new NotImplementedException();
}
public Stream CreateFile(string path)
{
throw new NotImplementedException();
}
}
}

12
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeInstallPackageAction.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.PackageManagement.Scripting;
namespace ICSharpCode.PackageManagement.Design
{
@ -27,5 +28,16 @@ namespace ICSharpCode.PackageManagement.Design @@ -27,5 +28,16 @@ namespace ICSharpCode.PackageManagement.Design
protected override void BeforeExecute()
{
}
protected override RunPackageScriptsAction CreateRunPackageScriptsAction(
IPackageScriptRunner scriptRunner,
IPackageManagementProject project)
{
return new RunPackageScriptsAction(
project,
scriptRunner,
new PackageScriptFactory(),
new NullGlobalMSBuildProjectCollection());
}
}
}

17
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackage.cs

@ -178,5 +178,22 @@ namespace ICSharpCode.PackageManagement.Design @@ -178,5 +178,22 @@ namespace ICSharpCode.PackageManagement.Design
{
return SupportedFrameworks;
}
List<PackageReferenceSet> FakePackageAssemblyReferences =
new List<PackageReferenceSet>();
public ICollection<PackageReferenceSet> PackageAssemblyReferences {
get { return FakePackageAssemblyReferences; }
}
public void AddPackageReferences(params string[] names)
{
var frameworkName = new FrameworkName(".NET Framework, Version=4.0");
var packageReferenceSet = new PackageReferenceSet(frameworkName, names);
FakePackageAssemblyReferences.Add(packageReferenceSet);
}
public Version MinClientVersion { get; set; }
public Uri GalleryUrl { get; set; }
}
}

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

@ -26,7 +26,7 @@ namespace ICSharpCode.PackageManagement.Design @@ -26,7 +26,7 @@ namespace ICSharpCode.PackageManagement.Design
this.Name = name;
}
public FakeInstallPackageAction FakeInstallPackageAction;
private FakeInstallPackageAction FakeInstallPackageAction;
public FakeUninstallPackageAction FakeUninstallPackageAction;
public FakeUpdatePackageAction FirstFakeUpdatePackageActionCreated {
@ -136,9 +136,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -136,9 +136,12 @@ namespace ICSharpCode.PackageManagement.Design
IsUpdatePackageCalled = true;
}
public FakeInstallPackageAction LastInstallPackageCreated;
public virtual InstallPackageAction CreateInstallPackageAction()
{
return FakeInstallPackageAction;
LastInstallPackageCreated = new FakeInstallPackageAction(this);
return LastInstallPackageCreated;
}
public virtual UninstallPackageAction CreateUninstallPackageAction()
@ -213,5 +216,48 @@ namespace ICSharpCode.PackageManagement.Design @@ -213,5 +216,48 @@ namespace ICSharpCode.PackageManagement.Design
{
FakeSourceRepository.AddFakePackage(packageId);
}
public void UpdatePackages(UpdatePackagesAction action)
{
}
public List<UpdatePackagesAction> UpdatePackagesActionsCreated =
new List<UpdatePackagesAction>();
public UpdatePackagesAction CreateUpdatePackagesAction()
{
var action = new UpdatePackagesAction(this, null);
UpdatePackagesActionsCreated.Add(action);
return action;
}
public UpdatePackagesAction UpdatePackagesActionPassedToGetUpdatePackagesOperations;
public IUpdatePackageSettings SettingsPassedToGetUpdatePackagesOperations;
public List<IPackage> PackagesOnUpdatePackagesActionPassedToGetUpdatePackagesOperations;
public List<PackageOperation> PackageOperationsToReturnFromGetUpdatePackagesOperations =
new List<PackageOperation>();
public IEnumerable<PackageOperation> GetUpdatePackagesOperations(
IEnumerable<IPackage> packages,
IUpdatePackageSettings settings)
{
SettingsPassedToGetUpdatePackagesOperations = settings;
PackagesOnUpdatePackagesActionPassedToGetUpdatePackagesOperations = packages.ToList();
return PackageOperationsToReturnFromGetUpdatePackagesOperations;
}
public void RunPackageOperations(IEnumerable<PackageOperation> expectedOperations)
{
}
public bool HasOlderPackageInstalled(IPackage package)
{
return false;
}
public void UpdatePackageReference(IPackage package, IUpdatePackageSettings settings)
{
throw new NotImplementedException();
}
}
}

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

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using ICSharpCode.PackageManagement;
using NuGet;
@ -22,6 +23,8 @@ namespace ICSharpCode.PackageManagement.Design @@ -22,6 +23,8 @@ namespace ICSharpCode.PackageManagement.Design
public IPackage PackagePassedToUninstallPackage;
public UpdatePackagesAction UpdatePackagesActionsPassedToUpdatePackages;
#pragma warning disable 67
public event EventHandler<PackageOperationEventArgs> PackageInstalled;
public event EventHandler<PackageOperationEventArgs> PackageInstalling;
@ -158,5 +161,37 @@ namespace ICSharpCode.PackageManagement.Design @@ -158,5 +161,37 @@ namespace ICSharpCode.PackageManagement.Design
{
throw new NotImplementedException();
}
public void UpdatePackages(UpdatePackagesAction updateAction)
{
UpdatePackagesActionsPassedToUpdatePackages = updateAction;
}
public List<PackageOperation> PackageOperationsToReturnFromGetUpdatePackageOperations = new List<PackageOperation>();
public IUpdatePackageSettings SettingsPassedToGetUpdatePackageOperations;
public IEnumerable<IPackage> PackagesPassedToGetUpdatePackageOperations;
public IEnumerable<PackageOperation> GetUpdatePackageOperations(IEnumerable<IPackage> packages, IUpdatePackageSettings settings)
{
SettingsPassedToGetUpdatePackageOperations = settings;
PackagesPassedToGetUpdatePackageOperations = packages;
return PackageOperationsToReturnFromGetUpdatePackageOperations;
}
public List<PackageOperation> PackageOperationsPassedToRunPackageOperations;
public void RunPackageOperations(IEnumerable<PackageOperation> operations)
{
PackageOperationsPassedToRunPackageOperations = operations.ToList();
}
public IPackage PackagePassedToUpdatePackageReference;
public IUpdatePackageSettings SettingsPassedToUpdatePackageReference;
public void UpdatePackageReference(IPackage package, IUpdatePackageSettings settings)
{
PackagePassedToUpdatePackageReference = package;
SettingsPassedToUpdatePackageReference = settings;
}
}
}

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

@ -116,5 +116,14 @@ namespace ICSharpCode.PackageManagement.Design @@ -116,5 +116,14 @@ namespace ICSharpCode.PackageManagement.Design
{
throw new NotImplementedException();
}
public IPackage PackagePassedToHasOlderPackageInstalled;
public bool HasOlderPackageInstalledReturnValue;
public bool HasOlderPackageInstalled(IPackage package)
{
PackagePassedToHasOlderPackageInstalled = package;
return HasOlderPackageInstalledReturnValue;
}
}
}

15
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeProjectSystem.cs

@ -56,5 +56,20 @@ namespace ICSharpCode.PackageManagement.Design @@ -56,5 +56,20 @@ namespace ICSharpCode.PackageManagement.Design
}
public bool IsBindingRedirectSupported { get; set; }
public void AddImport(string targetPath, ProjectImportLocation location)
{
throw new NotImplementedException();
}
public void RemoveImport(string targetPath)
{
throw new NotImplementedException();
}
public bool FileExistsInProject(string path)
{
throw new NotImplementedException();
}
}
}

7
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeRegisteredPackageRepositories.cs

@ -72,7 +72,12 @@ namespace ICSharpCode.PackageManagement.Design @@ -72,7 +72,12 @@ namespace ICSharpCode.PackageManagement.Design
public FakePackage AddFakePackageWithVersionToActiveRepository(string version)
{
var package = FakePackage.CreatePackageWithVersion("Test", version);
return AddFakePackageWithVersionToActiveRepository("Test", version);
}
public FakePackage AddFakePackageWithVersionToActiveRepository(string id, string version)
{
var package = FakePackage.CreatePackageWithVersion(id, version);
FakeActiveRepository.FakePackages.Add(package);
return package;
}

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

@ -42,11 +42,6 @@ namespace ICSharpCode.PackageManagement.Design @@ -42,11 +42,6 @@ namespace ICSharpCode.PackageManagement.Design
return String.Format("Name: {0}, IsSelected: {1}, IsEnabled: {2}", Name, IsSelected, IsEnabled);
}
public FakeInstallPackageAction FakeInstallPackageAction {
get { return FakeProject.FakeInstallPackageAction; }
set { FakeProject.FakeInstallPackageAction = value; }
}
public IPackageManagementProject Project {
get { return FakeProject; }
}

10
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSettings.cs

@ -187,5 +187,15 @@ namespace ICSharpCode.PackageManagement.Design @@ -187,5 +187,15 @@ namespace ICSharpCode.PackageManagement.Design
{
throw new NotImplementedException();
}
public IList<KeyValuePair<string, string>> GetValues(string section, bool isPath)
{
throw new NotImplementedException();
}
public IList<SettingValue> GetSettingValues(string section, bool isPath)
{
throw new NotImplementedException();
}
}
}

12
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUninstallPackageAction.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.PackageManagement.Scripting;
namespace ICSharpCode.PackageManagement.Design
{
@ -22,5 +23,16 @@ namespace ICSharpCode.PackageManagement.Design @@ -22,5 +23,16 @@ namespace ICSharpCode.PackageManagement.Design
protected override void BeforeExecute()
{
}
protected override RunPackageScriptsAction CreateRunPackageScriptsAction(
IPackageScriptRunner scriptRunner,
IPackageManagementProject project)
{
return new RunPackageScriptsAction(
project,
scriptRunner,
new PackageScriptFactory(),
new NullGlobalMSBuildProjectCollection());
}
}
}

12
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeUpdatePackageAction.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.PackageManagement.Scripting;
namespace ICSharpCode.PackageManagement.Design
{
@ -27,5 +28,16 @@ namespace ICSharpCode.PackageManagement.Design @@ -27,5 +28,16 @@ namespace ICSharpCode.PackageManagement.Design
protected override void BeforeExecute()
{
}
protected override RunPackageScriptsAction CreateRunPackageScriptsAction(
IPackageScriptRunner scriptRunner,
IPackageManagementProject project)
{
return new RunPackageScriptsAction(
project,
scriptRunner,
new PackageScriptFactory(),
new NullGlobalMSBuildProjectCollection());
}
}
}

44
src/AddIns/Misc/PackageManagement/Project/Src/FileConflictResolver.cs

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
// 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.Core;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class FileConflictResolver : ServiceWithWorkbenchOwner, IFileConflictResolver
{
IPackageManagementWorkbench workbench;
public FileConflictResolver()
: this(new PackageManagementWorkbench())
{
}
public FileConflictResolver(IPackageManagementWorkbench workbench)
{
this.workbench = workbench;
}
public FileConflictResolution ResolveFileConflict(string message)
{
if (workbench.InvokeRequired) {
return workbench.SafeThreadFunction(() => ResolveFileConflict(message));
} else {
var viewModel = new FileConflictViewModel(message);
FileConflictView view = CreateFileConflictView(viewModel);
view.ShowDialog();
return viewModel.GetResolution();
}
}
FileConflictView CreateFileConflictView(FileConflictViewModel viewModel)
{
var view = new FileConflictView();
view.ViewModel = viewModel;
view.Owner = Owner;
return view;
}
}
}

63
src/AddIns/Misc/PackageManagement/Project/Src/FileConflictView.xaml

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
<Window
x:Class="ICSharpCode.PackageManagement.FileConflictView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="File Conflict"
FocusManager.FocusedElement="{Binding ElementName=NoButton}"
WindowStartupLocation="CenterOwner"
Style="{x:Static core:GlobalStyles.DialogWindowStyle}"
MinHeight="150"
Height="150"
MinWidth="400"
Width="200">
<Window.Resources>
<Style TargetType="Button" BasedOn="{x:Static core:GlobalStyles.ButtonStyle}"/>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock
Margin="5"
Text="{Binding Message}"
Grid.ColumnSpan="5"
TextWrapping="Wrap"/>
<Button
Margin="4"
Grid.Row="1"
Grid.Column="1"
Command="{Binding YesCommand}"
Content="Yes"/>
<Button
Margin="4"
Grid.Row="1"
Grid.Column="2"
Command="{Binding YesToAllCommand}"
Content="Yes to All"/>
<Button
x:Name="NoButton"
Margin="4"
Grid.Row="1"
Grid.Column="3"
IsDefault="True"
Command="{Binding NoCommand}"
Content="No"/>
<Button
Margin="4"
Grid.Row="1"
Grid.Column="4"
Command="{Binding NoToAllCommand}"
Content="No to All"/>
</Grid>
</Window>

32
src/AddIns/Misc/PackageManagement/Project/Src/FileConflictView.xaml.cs

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
// 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.Windows;
namespace ICSharpCode.PackageManagement
{
public partial class FileConflictView : Window
{
FileConflictViewModel viewModel;
public FileConflictView()
{
InitializeComponent();
}
public FileConflictViewModel ViewModel {
get { return viewModel; }
set {
viewModel = value;
viewModel.Close += CloseView;
DataContext = viewModel;
}
}
void CloseView(object sender, EventArgs e)
{
DialogResult = true;
}
}
}

48
src/AddIns/Misc/PackageManagement/Project/Src/FileConflictViewModel.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 System.Windows.Input;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class FileConflictViewModel
{
FileConflictResolution resolution = FileConflictResolution.Ignore;
public FileConflictViewModel(string message)
{
this.Message = message;
CreateCommands();
}
void CreateCommands()
{
YesCommand = new DelegateCommand(param => UpdateResolution(FileConflictResolution.Overwrite));
YesToAllCommand = new DelegateCommand(param => UpdateResolution(FileConflictResolution.OverwriteAll));
NoCommand = new DelegateCommand(param => UpdateResolution(FileConflictResolution.Ignore));
NoToAllCommand = new DelegateCommand(param => UpdateResolution(FileConflictResolution.IgnoreAll));
}
void UpdateResolution(FileConflictResolution resolution)
{
this.resolution = resolution;
Close(this, new EventArgs());
}
public event EventHandler Close;
public ICommand YesCommand { get; private set; }
public ICommand YesToAllCommand { get; private set; }
public ICommand NoCommand { get; private set; }
public ICommand NoToAllCommand { get; private set; }
public string Message { get; private set; }
public FileConflictResolution GetResolution()
{
return resolution;
}
}
}

15
src/AddIns/Misc/PackageManagement/Project/Src/IPackageAction.cs

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
// 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.Scripting;
namespace ICSharpCode.PackageManagement
{
public interface IPackageAction
{
void Execute();
bool HasPackageScriptsToRun();
IPackageScriptRunner PackageScriptRunner { get; set; }
}
}

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

@ -8,7 +8,7 @@ namespace ICSharpCode.PackageManagement @@ -8,7 +8,7 @@ namespace ICSharpCode.PackageManagement
{
public interface IPackageActionRunner
{
void Run(ProcessPackageAction action);
void Run(IEnumerable<ProcessPackageAction> actions);
void Run(IPackageAction action);
void Run(IEnumerable<IPackageAction> actions);
}
}

10
src/AddIns/Misc/PackageManagement/Project/Src/IPackageExtensions.cs

@ -17,5 +17,15 @@ namespace ICSharpCode.PackageManagement @@ -17,5 +17,15 @@ namespace ICSharpCode.PackageManagement
return package.Description;
return package.Summary;
}
/// <summary>
/// Returns package Id if it has no title.
/// </summary>
public static string GetName(this IPackage package)
{
if (String.IsNullOrEmpty(package.Title))
return package.Id;
return package.Title;
}
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/IPackageFromRepository.cs

@ -11,5 +11,6 @@ namespace ICSharpCode.PackageManagement @@ -11,5 +11,6 @@ namespace ICSharpCode.PackageManagement
IPackageRepository Repository { get; }
bool HasDependencies { get; }
DateTime? LastUpdated { get; }
Uri GalleryUrl { get; }
}
}

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

@ -12,9 +12,11 @@ namespace ICSharpCode.PackageManagement @@ -12,9 +12,11 @@ namespace ICSharpCode.PackageManagement
event EventHandler PackageOperationsStarting;
event EventHandler<AcceptLicensesEventArgs> AcceptLicenses;
event EventHandler<SelectProjectsEventArgs> SelectProjects;
event EventHandler<ResolveFileConflictEventArgs> ResolveFileConflict;
event EventHandler<PackageOperationExceptionEventArgs> PackageOperationError;
event EventHandler<ParentPackageOperationEventArgs> ParentPackageInstalled;
event EventHandler<ParentPackageOperationEventArgs> ParentPackageUninstalled;
event EventHandler<ParentPackagesOperationEventArgs> ParentPackagesUpdated;
event EventHandler<PackageOperationMessageLoggedEventArgs> PackageOperationMessageLogged;
void OnPackageOperationsStarting();
@ -22,7 +24,9 @@ namespace ICSharpCode.PackageManagement @@ -22,7 +24,9 @@ namespace ICSharpCode.PackageManagement
bool OnAcceptLicenses(IEnumerable<IPackage> packages);
void OnParentPackageInstalled(IPackage package);
void OnParentPackageUninstalled(IPackage package);
void OnParentPackagesUpdated(IEnumerable<IPackage> packages);
void OnPackageOperationMessageLogged(MessageLevel level, string message, params object[] args);
bool OnSelectProjects(IEnumerable<IPackageManagementSelectedProject> selectedProjects);
FileConflictResolution OnResolveFileConflict(string message);
}
}

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

@ -25,18 +25,26 @@ namespace ICSharpCode.PackageManagement @@ -25,18 +25,26 @@ namespace ICSharpCode.PackageManagement
bool IsPackageInstalled(IPackage package);
bool IsPackageInstalled(string packageId);
bool HasOlderPackageInstalled(IPackage package);
IQueryable<IPackage> GetPackages();
IEnumerable<IPackage> GetPackagesInReverseDependencyOrder();
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction);
IEnumerable<PackageOperation> GetUpdatePackagesOperations(IEnumerable<IPackage> packages, IUpdatePackageSettings settings);
void InstallPackage(IPackage package, InstallPackageAction installAction);
void UpdatePackage(IPackage package, UpdatePackageAction updateAction);
void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction);
void UpdatePackages(UpdatePackagesAction action);
void UpdatePackageReference(IPackage package, IUpdatePackageSettings settings);
InstallPackageAction CreateInstallPackageAction();
UninstallPackageAction CreateUninstallPackageAction();
UpdatePackageAction CreateUpdatePackageAction();
UpdatePackagesAction CreateUpdatePackagesAction();
void RunPackageOperations(IEnumerable<PackageOperation> expectedOperations);
}
}

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

@ -11,6 +11,9 @@ namespace ICSharpCode.PackageManagement @@ -11,6 +11,9 @@ namespace ICSharpCode.PackageManagement
void SafeThreadAsyncCall<A>(Action<A> method, A arg1);
void SafeThreadAsyncCall<A, B>(Action<A, B> method, A arg1, B arg2);
R SafeThreadFunction<R>(Func<R> method);
void CreateConsolePad();
void ShowConsolePad();
}
}

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

@ -13,5 +13,11 @@ namespace ICSharpCode.PackageManagement @@ -13,5 +13,11 @@ namespace ICSharpCode.PackageManagement
IPackageRepository sourceRepository,
ILogger logger,
InstallPackageAction installAction);
IPackageOperationResolver CreateUpdatePackageOperationResolver(
IPackageRepository localRepository,
IPackageRepository sourceRepository,
ILogger logger,
IUpdatePackageSettings settings);
}
}

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

@ -9,11 +9,12 @@ namespace ICSharpCode.PackageManagement @@ -9,11 +9,12 @@ namespace ICSharpCode.PackageManagement
{
public interface IPackageViewModelFactory
{
PackageViewModel CreatePackageViewModel(IPackageFromRepository package);
PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package);
IPackageManagementSolution Solution { get; }
PackageManagementSelectedProjects SelectedProjects { get; }
IPackageManagementEvents PackageManagementEvents { get; }
IPackageActionRunner PackageActionRunner { get; }
ILogger Logger { get; }
}
}

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

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
// 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
{
public interface IPackageViewModelParent
{
bool IncludePrerelease { get; }
}
}

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

@ -14,7 +14,12 @@ namespace ICSharpCode.PackageManagement @@ -14,7 +14,12 @@ namespace ICSharpCode.PackageManagement
void InstallPackage(IPackage package, InstallPackageAction installAction);
void UninstallPackage(IPackage package, UninstallPackageAction uninstallAction);
void UpdatePackage(IPackage package, UpdatePackageAction updateAction);
void UpdatePackages(UpdatePackagesAction updateAction);
void UpdatePackageReference(IPackage package, IUpdatePackageSettings settings);
IEnumerable<PackageOperation> GetInstallPackageOperations(IPackage package, InstallPackageAction installAction);
IEnumerable<PackageOperation> GetUpdatePackageOperations(IEnumerable<IPackage> packages, IUpdatePackageSettings settings);
void RunPackageOperations(IEnumerable<PackageOperation> operations);
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopProjectManager.cs

@ -10,5 +10,6 @@ namespace ICSharpCode.PackageManagement @@ -10,5 +10,6 @@ namespace ICSharpCode.PackageManagement
{
IPackagePathResolver PathResolver { get; }
bool IsInstalled(string packageId);
bool HasOlderPackageInstalled(IPackage package);
}
}

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

@ -7,10 +7,8 @@ using ICSharpCode.PackageManagement.Scripting; @@ -7,10 +7,8 @@ using ICSharpCode.PackageManagement.Scripting;
namespace ICSharpCode.PackageManagement
{
public interface IUpdatePackageActions
public interface IUpdatePackageActions : IUpdatePackageSettings
{
bool UpdateDependencies { get; set; }
bool AllowPrereleaseVersions { get; set; }
IPackageScriptRunner PackageScriptRunner { get; set; }
IEnumerable<UpdatePackageAction> CreateActions();

13
src/AddIns/Misc/PackageManagement/Project/Src/IUpdatePackageSettings.cs

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
// 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
{
public interface IUpdatePackageSettings
{
bool UpdateDependencies { get; set; }
bool AllowPrereleaseVersions { get; set; }
}
}

18
src/AddIns/Misc/PackageManagement/Project/Src/IUpdatePackagesAction.cs

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
// 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 NuGet;
namespace ICSharpCode.PackageManagement
{
public interface IUpdatePackagesAction : IPackageAction, IUpdatePackageSettings
{
IEnumerable<PackageOperation> Operations { get; }
ILogger Logger { get; set; }
void AddPackages(IEnumerable<IPackageFromRepository> packages);
void AddOperations(IEnumerable<PackageOperation> operations);
}
}

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

@ -10,12 +10,13 @@ namespace ICSharpCode.PackageManagement @@ -10,12 +10,13 @@ namespace ICSharpCode.PackageManagement
public class InstalledPackageViewModel : PackageViewModel
{
public InstalledPackageViewModel(
IPackageViewModelParent parent,
IPackageFromRepository package,
SelectedProjectsForInstalledPackages selectedProjects,
IPackageManagementEvents packageManagementEvents,
IPackageActionRunner actionRunner,
ILogger logger)
: base(package, selectedProjects, packageManagementEvents, actionRunner, logger)
: base(parent, package, selectedProjects, packageManagementEvents, actionRunner, logger)
{
}

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

@ -15,9 +15,10 @@ namespace ICSharpCode.PackageManagement @@ -15,9 +15,10 @@ namespace ICSharpCode.PackageManagement
selectedProjectsForInstalledPackages = new SelectedProjectsForInstalledPackages(Solution);
}
public override PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
public override PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
{
return new InstalledPackageViewModel(
parent,
package,
selectedProjectsForInstalledPackages,
PackageManagementEvents,

11
src/AddIns/Misc/PackageManagement/Project/Src/InstalledPackagesViewModel.cs

@ -25,12 +25,18 @@ namespace ICSharpCode.PackageManagement @@ -25,12 +25,18 @@ namespace ICSharpCode.PackageManagement
{
this.solution = solution;
this.packageManagementEvents = packageManagementEvents;
packageManagementEvents.ParentPackageInstalled += InstalledPackagesChanged;
packageManagementEvents.ParentPackageUninstalled += InstalledPackagesChanged;
RegisterEvents();
TryGetActiveProject();
}
void RegisterEvents()
{
packageManagementEvents.ParentPackageInstalled += InstalledPackagesChanged;
packageManagementEvents.ParentPackageUninstalled += InstalledPackagesChanged;
packageManagementEvents.ParentPackagesUpdated += InstalledPackagesChanged;
}
void TryGetActiveProject()
{
try {
@ -49,6 +55,7 @@ namespace ICSharpCode.PackageManagement @@ -49,6 +55,7 @@ namespace ICSharpCode.PackageManagement
{
packageManagementEvents.ParentPackageInstalled -= InstalledPackagesChanged;
packageManagementEvents.ParentPackageUninstalled -= InstalledPackagesChanged;
packageManagementEvents.ParentPackagesUpdated -= InstalledPackagesChanged;
}
protected override IQueryable<IPackage> GetAllPackages()

13
src/AddIns/Misc/PackageManagement/Project/Src/LicenseAcceptanceService.cs

@ -10,19 +10,8 @@ using NuGet; @@ -10,19 +10,8 @@ using NuGet;
namespace ICSharpCode.PackageManagement
{
public class LicenseAcceptanceService : ILicenseAcceptanceService
public class LicenseAcceptanceService : ServiceWithWorkbenchOwner, ILicenseAcceptanceService
{
Window owner;
public Window Owner {
get {
if (owner == null) {
owner = SD.Workbench.MainWindow;
}
return owner;
}
set { owner = value; }
}
public bool AcceptLicenses(IEnumerable<IPackage> packages)
{

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

@ -2,7 +2,10 @@ @@ -2,7 +2,10 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Linq;
using ICSharpCode.SharpDevelop.Project;
using Microsoft.Build.Construction;
using NuGet;
namespace ICSharpCode.PackageManagement
{
@ -12,5 +15,64 @@ namespace ICSharpCode.PackageManagement @@ -12,5 +15,64 @@ namespace ICSharpCode.PackageManagement
{
return project.HasProjectType(ProjectTypeGuids.WebApplication) || project.HasProjectType(ProjectTypeGuids.WebSite);
}
public static void AddImportIfMissing(
this MSBuildBasedProject project,
string importedProjectFile,
ProjectImportLocation importLocation)
{
lock (project.SyncRoot) {
if (project.ImportExists(importedProjectFile))
return;
ProjectImportElement import = AddImport(project.MSBuildProjectFile, importedProjectFile, importLocation);
import.Condition = GetCondition(importedProjectFile);
}
}
static ProjectImportElement AddImport(
ProjectRootElement projectRoot,
string importedProjectFile,
ProjectImportLocation importLocation)
{
if (importLocation == ProjectImportLocation.Top) {
return AddImportAtTop(projectRoot, importedProjectFile);
}
return projectRoot.AddImport(importedProjectFile);
}
static ProjectImportElement AddImportAtTop(ProjectRootElement projectRoot, string importedProjectFile)
{
ProjectImportElement import = projectRoot.CreateImportElement(importedProjectFile);
projectRoot.InsertBeforeChild(import, projectRoot.FirstChild);
return import;
}
static string GetCondition(string importedProjectFile)
{
return String.Format("Exists('{0}')", importedProjectFile);
}
public static bool ImportExists(this MSBuildBasedProject project, string importedProjectFile)
{
lock (project.SyncRoot) {
return project.FindImport(importedProjectFile) != null;
}
}
public static void RemoveImport(this MSBuildBasedProject project, string importedProjectFile)
{
lock (project.SyncRoot) {
ProjectImportElement import = project.FindImport(importedProjectFile);
if (import != null) {
import.Parent.RemoveChild(import);
}
}
}
static ProjectImportElement FindImport(this MSBuildBasedProject project, string importedProjectFile)
{
return project.MSBuildProjectFile.FindImport(importedProjectFile);
}
}
}

42
src/AddIns/Misc/PackageManagement/Project/Src/ManagePackagesUserPrompts.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 NuGet;
namespace ICSharpCode.PackageManagement
{
@ -10,31 +11,44 @@ namespace ICSharpCode.PackageManagement @@ -10,31 +11,44 @@ namespace ICSharpCode.PackageManagement
ILicenseAcceptanceService licenseAcceptanceService;
ISelectProjectsService selectProjectsService;
IPackageManagementEvents packageManagementEvents;
IFileConflictResolver fileConflictResolver;
FileConflictResolution lastFileConflictResolution;
public ManagePackagesUserPrompts(IPackageManagementEvents packageManagementEvents)
: this(
packageManagementEvents,
new LicenseAcceptanceService(),
new SelectProjectsService())
new SelectProjectsService(),
new FileConflictResolver())
{
}
public ManagePackagesUserPrompts(
IPackageManagementEvents packageManagementEvents,
ILicenseAcceptanceService licenseAcceptanceService,
ISelectProjectsService selectProjectsService)
ISelectProjectsService selectProjectsService,
IFileConflictResolver fileConflictResolver)
{
this.packageManagementEvents = packageManagementEvents;
this.licenseAcceptanceService = licenseAcceptanceService;
this.selectProjectsService = selectProjectsService;
this.fileConflictResolver = fileConflictResolver;
ResetFileConflictResolution();
SubscribeToEvents();
}
void ResetFileConflictResolution()
{
lastFileConflictResolution = FileConflictResolution.Overwrite;
}
void SubscribeToEvents()
{
packageManagementEvents.AcceptLicenses += AcceptLicenses;
packageManagementEvents.SelectProjects += SelectProjects;
packageManagementEvents.ResolveFileConflict += ResolveFileConflict;
packageManagementEvents.PackageOperationsStarting += PackageOperationsStarting;
}
void AcceptLicenses(object sender, AcceptLicensesEventArgs e)
@ -47,6 +61,28 @@ namespace ICSharpCode.PackageManagement @@ -47,6 +61,28 @@ namespace ICSharpCode.PackageManagement
e.IsAccepted = selectProjectsService.SelectProjects(e.SelectedProjects);
}
void ResolveFileConflict(object sender, ResolveFileConflictEventArgs e)
{
if (UserPreviouslySelectedOverwriteAllOrIgnoreAll()) {
e.Resolution = lastFileConflictResolution;
} else {
e.Resolution = fileConflictResolver.ResolveFileConflict(e.Message);
lastFileConflictResolution = e.Resolution;
}
}
bool UserPreviouslySelectedOverwriteAllOrIgnoreAll()
{
return
(lastFileConflictResolution == FileConflictResolution.IgnoreAll) ||
(lastFileConflictResolution == FileConflictResolution.OverwriteAll);
}
void PackageOperationsStarting(object sender, EventArgs e)
{
ResetFileConflictResolution();
}
public void Dispose()
{
UnsubscribeFromEvents();
@ -56,6 +92,8 @@ namespace ICSharpCode.PackageManagement @@ -56,6 +92,8 @@ namespace ICSharpCode.PackageManagement
{
packageManagementEvents.SelectProjects -= SelectProjects;
packageManagementEvents.AcceptLicenses -= AcceptLicenses;
packageManagementEvents.ResolveFileConflict -= ResolveFileConflict;
packageManagementEvents.PackageOperationsStarting -= PackageOperationsStarting;
}
}
}

10
src/AddIns/Misc/PackageManagement/Project/Src/PackageActionRunner.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.PackageManagement @@ -31,7 +31,7 @@ namespace ICSharpCode.PackageManagement
this.powerShellDetection = powerShellDetection;
}
public void Run(IEnumerable<ProcessPackageAction> actions)
public void Run(IEnumerable<IPackageAction> actions)
{
if (ShouldRunActionsInConsole(actions)) {
consolePackageActionRunner.Run(actions);
@ -42,9 +42,9 @@ namespace ICSharpCode.PackageManagement @@ -42,9 +42,9 @@ namespace ICSharpCode.PackageManagement
}
}
bool ShouldRunActionsInConsole(IEnumerable<ProcessPackageAction> actions)
bool ShouldRunActionsInConsole(IEnumerable<IPackageAction> actions)
{
foreach (ProcessPackageAction action in actions) {
foreach (IPackageAction action in actions) {
if (ShouldRunActionInConsole(action)) {
return true;
}
@ -52,7 +52,7 @@ namespace ICSharpCode.PackageManagement @@ -52,7 +52,7 @@ namespace ICSharpCode.PackageManagement
return false;
}
public void Run(ProcessPackageAction action)
public void Run(IPackageAction action)
{
if (ShouldRunActionInConsole(action)) {
consolePackageActionRunner.Run(action);
@ -61,7 +61,7 @@ namespace ICSharpCode.PackageManagement @@ -61,7 +61,7 @@ namespace ICSharpCode.PackageManagement
}
}
bool ShouldRunActionInConsole(ProcessPackageAction action)
bool ShouldRunActionInConsole(IPackageAction action)
{
if (action.HasPackageScriptsToRun()) {
if (powerShellDetection.IsPowerShell2Installed()) {

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

@ -8,14 +8,14 @@ namespace ICSharpCode.PackageManagement @@ -8,14 +8,14 @@ namespace ICSharpCode.PackageManagement
{
public class PackageActionsToRun
{
ConcurrentQueue<ProcessPackageAction> actions = new ConcurrentQueue<ProcessPackageAction>();
ConcurrentQueue<IPackageAction> actions = new ConcurrentQueue<IPackageAction>();
public bool GetNextAction(out ProcessPackageAction action)
public bool GetNextAction(out IPackageAction action)
{
return actions.TryDequeue(out action);
}
public void AddAction(ProcessPackageAction action)
public void AddAction(IPackageAction action)
{
actions.Enqueue(action);
}

18
src/AddIns/Misc/PackageManagement/Project/Src/PackageFromRepository.cs

@ -174,5 +174,23 @@ namespace ICSharpCode.PackageManagement @@ -174,5 +174,23 @@ namespace ICSharpCode.PackageManagement
{
return package.ToString();
}
public ICollection<PackageReferenceSet> PackageAssemblyReferences {
get { return package.PackageAssemblyReferences; }
}
public Version MinClientVersion {
get { return package.MinClientVersion; }
}
public Uri GalleryUrl {
get {
var dataServicePackage = package as DataServicePackage;
if (dataServicePackage != null) {
return dataServicePackage.GalleryDetailsUrl;
}
return null;
}
}
}
}

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

@ -78,5 +78,26 @@ namespace ICSharpCode.PackageManagement @@ -78,5 +78,26 @@ namespace ICSharpCode.PackageManagement
}
return true;
}
public event EventHandler<ResolveFileConflictEventArgs> ResolveFileConflict;
public FileConflictResolution OnResolveFileConflict(string message)
{
if (ResolveFileConflict != null) {
var eventArgs = new ResolveFileConflictEventArgs(message);
ResolveFileConflict(this, eventArgs);
return eventArgs.Resolution;
}
return FileConflictResolution.IgnoreAll;
}
public event EventHandler<ParentPackagesOperationEventArgs> ParentPackagesUpdated;
public void OnParentPackagesUpdated(IEnumerable<IPackage> packages)
{
if (ParentPackagesUpdated != null) {
ParentPackagesUpdated(this, new ParentPackagesOperationEventArgs(packages));
}
}
}
}

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

@ -19,5 +19,10 @@ namespace ICSharpCode.PackageManagement @@ -19,5 +19,10 @@ namespace ICSharpCode.PackageManagement
{
packageManagementEvents.OnPackageOperationMessageLogged(level, message, args);
}
public FileConflictResolution ResolveFileConflict(string message)
{
return packageManagementEvents.OnResolveFileConflict(message);
}
}
}

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

@ -28,7 +28,7 @@ namespace ICSharpCode.PackageManagement @@ -28,7 +28,7 @@ namespace ICSharpCode.PackageManagement
}
public PackageManagementOptions(Properties properties)
: this(properties, Settings.LoadDefaultSettings(null))
: this(properties, Settings.LoadDefaultSettings(null, null, null))
{
}

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

@ -131,5 +131,37 @@ namespace ICSharpCode.PackageManagement @@ -131,5 +131,37 @@ namespace ICSharpCode.PackageManagement
.GetPackagesByDependencyOrder(projectManager.LocalRepository)
.Reverse();
}
public void UpdatePackages(UpdatePackagesAction updateAction)
{
packageManager.UpdatePackages(updateAction);
}
public UpdatePackagesAction CreateUpdatePackagesAction()
{
return new UpdatePackagesAction(this, packageManagementEvents);
}
public IEnumerable<PackageOperation> GetUpdatePackagesOperations(
IEnumerable<IPackage> packages,
IUpdatePackageSettings settings)
{
return packageManager.GetUpdatePackageOperations(packages, settings);
}
public void RunPackageOperations(IEnumerable<PackageOperation> operations)
{
packageManager.RunPackageOperations(operations);
}
public bool HasOlderPackageInstalled(IPackage package)
{
return projectManager.HasOlderPackageInstalled(package);
}
public void UpdatePackageReference(IPackage package, IUpdatePackageSettings settings)
{
packageManager.UpdatePackageReference(package, settings);
}
}
}

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

@ -13,16 +13,17 @@ namespace ICSharpCode.PackageManagement @@ -13,16 +13,17 @@ namespace ICSharpCode.PackageManagement
{
public class PackageManagementSelectedProjects
{
IPackageManagementSolution solution;
bool? singleProjectSelected;
IProject singleMSBuildProjectSelected;
public PackageManagementSelectedProjects(IPackageManagementSolution solution)
{
this.solution = solution;
this.Solution = solution;
GetHasSingleProjectSelected();
}
public IPackageManagementSolution Solution { get; private set; }
public IEnumerable<IPackageManagementSelectedProject> GetProjects(IPackageFromRepository package)
{
if (HasSingleProjectSelected()) {
@ -44,13 +45,13 @@ namespace ICSharpCode.PackageManagement @@ -44,13 +45,13 @@ namespace ICSharpCode.PackageManagement
void GetHasSingleProjectSelected()
{
singleMSBuildProjectSelected = solution.GetActiveMSBuildProject();
singleMSBuildProjectSelected = Solution.GetActiveMSBuildProject();
singleProjectSelected = singleMSBuildProjectSelected != null;
}
IEnumerable<IProject> GetOpenProjects()
{
return solution.GetMSBuildProjects();
return Solution.GetMSBuildProjects();
}
IPackageManagementSelectedProject GetSingleProjectSelected(IPackageFromRepository package)
@ -60,7 +61,7 @@ namespace ICSharpCode.PackageManagement @@ -60,7 +61,7 @@ namespace ICSharpCode.PackageManagement
IPackageManagementSelectedProject CreateSelectedProject(IProject msbuildProject, IPackageFromRepository package)
{
IPackageManagementProject project = solution.GetProject(package.Repository, msbuildProject);
IPackageManagementProject project = Solution.GetProject(package.Repository, msbuildProject);
return CreateSelectedProject(project, package);
}
@ -88,7 +89,7 @@ namespace ICSharpCode.PackageManagement @@ -88,7 +89,7 @@ namespace ICSharpCode.PackageManagement
if (HasSingleProjectSelected()) {
return false;
}
return solution.HasMultipleProjects();
return Solution.HasMultipleProjects();
}
public string SelectionName {
@ -110,7 +111,7 @@ namespace ICSharpCode.PackageManagement @@ -110,7 +111,7 @@ namespace ICSharpCode.PackageManagement
string GetSolutionFileNameWithoutFullPath()
{
return Path.GetFileName(solution.FileName);
return Path.GetFileName(Solution.FileName);
}
/// <summary>
@ -127,12 +128,12 @@ namespace ICSharpCode.PackageManagement @@ -127,12 +128,12 @@ namespace ICSharpCode.PackageManagement
public bool IsPackageInstalledInSolution(IPackage package)
{
return solution.IsPackageInstalled(package);
return Solution.IsPackageInstalled(package);
}
public IQueryable<IPackage> GetPackagesInstalledInSolution()
{
return solution.GetPackages();
return Solution.GetPackages();
}
public IQueryable<IPackage> GetInstalledPackages(IPackageRepository sourceRepository)
@ -147,7 +148,7 @@ namespace ICSharpCode.PackageManagement @@ -147,7 +148,7 @@ namespace ICSharpCode.PackageManagement
public IPackageManagementProject GetSingleProjectSelected(IPackageRepository repository)
{
if (HasSingleProjectSelected()) {
return solution.GetProject(repository, singleMSBuildProjectSelected);
return Solution.GetProject(repository, singleMSBuildProjectSelected);
}
return null;
}

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

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.PackageManagement.Scripting;
using NuGet;
namespace ICSharpCode.PackageManagement
{
@ -41,6 +42,17 @@ namespace ICSharpCode.PackageManagement @@ -41,6 +42,17 @@ namespace ICSharpCode.PackageManagement
resetPowerShellWorkingDirectory = new ResetPowerShellWorkingDirectoryOnSolutionClosed(projectService, ConsoleHost);
var consolePackageActionRunner = new ConsolePackageActionRunner(ConsoleHost, packageActionsToRun);
packageActionRunner = new PackageActionRunner(consolePackageActionRunner, packageManagementEvents);
InitializeCredentialProvider();
}
static void InitializeCredentialProvider()
{
ISettings settings = Settings.LoadDefaultSettings(null, null, null);
var packageSourceProvider = new PackageSourceProvider(settings);
var credentialProvider = new SettingsCredentialProvider(new SharpDevelopCredentialProvider(), packageSourceProvider);
HttpClient.DefaultCredentialProvider = credentialProvider;
}
public static PackageManagementOptions Options {

19
src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementWorkbench.cs

@ -12,17 +12,27 @@ namespace ICSharpCode.PackageManagement @@ -12,17 +12,27 @@ namespace ICSharpCode.PackageManagement
{
public void CreateConsolePad()
{
PadDescriptor pad = SD.Workbench.GetPad(typeof(PackageManagementConsolePad));
pad.BringPadToFront();
PadDescriptor pad = GetConsolePad();
EnsurePackageManagementConsoleViewModelIsCreated(pad);
}
PadDescriptor GetConsolePad()
{
return SD.Workbench.GetPad(typeof(PackageManagementConsolePad));
}
void EnsurePackageManagementConsoleViewModelIsCreated(PadDescriptor pad)
{
// Force creation of view model.
object control = pad.PadContent.Control;
}
public void ShowConsolePad()
{
PadDescriptor pad = GetConsolePad();
pad.BringPadToFront();
}
public bool InvokeRequired {
get { return SD.MainThread.InvokeRequired; }
}
@ -36,5 +46,10 @@ namespace ICSharpCode.PackageManagement @@ -36,5 +46,10 @@ namespace ICSharpCode.PackageManagement
{
SD.MainThread.InvokeAsyncAndForget(() => method(arg1, arg2));
}
public R SafeThreadFunction<R>(Func<R> method)
{
return WorkbenchSingleton.SafeThreadFunction<R>(method);
}
}
}

11
src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs

@ -22,5 +22,16 @@ namespace ICSharpCode.PackageManagement @@ -22,5 +22,16 @@ namespace ICSharpCode.PackageManagement
installAction.IgnoreDependencies,
installAction.AllowPrereleaseVersions);
}
public IPackageOperationResolver CreateUpdatePackageOperationResolver(IPackageRepository localRepository, IPackageRepository sourceRepository, ILogger logger, IUpdatePackageSettings settings)
{
return new InstallWalker(
localRepository,
sourceRepository,
null,
logger,
!settings.UpdateDependencies,
settings.AllowPrereleaseVersions);
}
}
}

33
src/AddIns/Misc/PackageManagement/Project/Src/PackageViewModel.cs

@ -22,14 +22,17 @@ namespace ICSharpCode.PackageManagement @@ -22,14 +22,17 @@ namespace ICSharpCode.PackageManagement
IEnumerable<PackageOperation> packageOperations = new PackageOperation[0];
PackageViewModelOperationLogger logger;
IPackageActionRunner actionRunner;
IPackageViewModelParent parent;
public PackageViewModel(
IPackageViewModelParent parent,
IPackageFromRepository package,
PackageManagementSelectedProjects selectedProjects,
IPackageManagementEvents packageManagementEvents,
IPackageActionRunner actionRunner,
ILogger logger)
{
this.parent = parent;
this.package = package;
this.selectedProjects = selectedProjects;
this.packageManagementEvents = packageManagementEvents;
@ -39,6 +42,11 @@ namespace ICSharpCode.PackageManagement @@ -39,6 +42,11 @@ namespace ICSharpCode.PackageManagement
CreateCommands();
}
public IPackageViewModelParent GetParent()
{
return parent;
}
protected virtual PackageViewModelOperationLogger CreateLogger(ILogger logger)
{
return new PackageViewModelOperationLogger(logger, package);
@ -125,6 +133,22 @@ namespace ICSharpCode.PackageManagement @@ -125,6 +133,22 @@ namespace ICSharpCode.PackageManagement
get { return package.Id; }
}
public string Name {
get { return package.GetName(); }
}
public bool HasGalleryUrl {
get { return GalleryUrl != null; }
}
public bool HasNoGalleryUrl {
get { return !HasGalleryUrl; }
}
public Uri GalleryUrl {
get { return package.GalleryUrl; }
}
public Uri IconUrl {
get { return package.IconUrl; }
}
@ -170,7 +194,8 @@ namespace ICSharpCode.PackageManagement @@ -170,7 +194,8 @@ namespace ICSharpCode.PackageManagement
{
IPackageManagementProject project = GetSingleProjectSelected();
project.Logger = logger;
var installAction = project.CreateInstallPackageAction();
InstallPackageAction installAction = project.CreateInstallPackageAction();
installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
packageOperations = project.GetInstallPackageOperations(package, installAction);
}
@ -243,6 +268,7 @@ namespace ICSharpCode.PackageManagement @@ -243,6 +268,7 @@ namespace ICSharpCode.PackageManagement
{
IPackageManagementProject project = GetSingleProjectSelected();
ProcessPackageOperationsAction action = CreateInstallPackageAction(project);
action.AllowPrereleaseVersions = parent.IncludePrerelease;
action.Package = package;
action.Operations = packageOperations;
actionRunner.Run(action);
@ -355,6 +381,7 @@ namespace ICSharpCode.PackageManagement @@ -355,6 +381,7 @@ namespace ICSharpCode.PackageManagement
foreach (IPackageManagementSelectedProject selectedProject in selectedProjects) {
if (selectedProject.IsSelected) {
ProcessPackageAction action = CreateInstallPackageAction(selectedProject);
action.AllowPrereleaseVersions = parent.IncludePrerelease;
actions.Add(action);
}
}
@ -410,7 +437,9 @@ namespace ICSharpCode.PackageManagement @@ -410,7 +437,9 @@ namespace ICSharpCode.PackageManagement
{
IPackageManagementProject project = selectedProject.Project;
project.Logger = logger;
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, project.CreateInstallPackageAction());
InstallPackageAction installAction = project.CreateInstallPackageAction();
installAction.AllowPrereleaseVersions = parent.IncludePrerelease;
IEnumerable<PackageOperation> operations = project.GetInstallPackageOperations(package, installAction);
return GetPackagesRequiringLicenseAcceptance(operations);
}

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

@ -29,9 +29,10 @@ namespace ICSharpCode.PackageManagement @@ -29,9 +29,10 @@ namespace ICSharpCode.PackageManagement
this.Logger = new PackageManagementLogger(packageManagementEvents);
}
public virtual PackageViewModel CreatePackageViewModel(IPackageFromRepository package)
public virtual PackageViewModel CreatePackageViewModel(IPackageViewModelParent parent, IPackageFromRepository package)
{
return new PackageViewModel(
parent,
package,
SelectedProjects,
PackageManagementEvents,

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

@ -90,5 +90,10 @@ namespace ICSharpCode.PackageManagement @@ -90,5 +90,10 @@ namespace ICSharpCode.PackageManagement
string message = GetFormattedStartPackageOperationMessage(ManagingPackageMessageFormat);
LogInformation(message);
}
public FileConflictResolution ResolveFileConflict(string message)
{
return logger.ResolveFileConflict(message);
}
}
}

38
src/AddIns/Misc/PackageManagement/Project/Src/PackagesView.xaml

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<UserControl
<UserControl
x:Class="ICSharpCode.PackageManagement.PackagesView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"
@ -52,7 +52,7 @@ @@ -52,7 +52,7 @@
Grid.Column="1"
Margin="4, 0">
<TextBlock
Text="{Binding Path=Id}"
Text="{Binding Path=Name}"
FontWeight="Bold"/>
<TextBlock
Text="{Binding Path=Summary}"
@ -160,6 +160,24 @@ @@ -160,6 +160,24 @@
Margin="4, 0"
ItemsSource="{Binding Path=Authors}"/>
</StackPanel>
<StackPanel
Orientation="Horizontal"
Margin="0, 4">
<TextBlock
Text="Id:"
FontWeight="Bold"
Margin="0, 0, 4, 0"/>
<TextBlock Visibility="{Binding Path=HasGalleryUrl, Converter={StaticResource BoolToVisibility}}">
<Hyperlink
Command="{StaticResource OpenHyperlinkCommand}"
CommandParameter="{Binding Path=GalleryUrl}">
<TextBlock Text="{Binding Path=Id}"/>
</Hyperlink>
</TextBlock>
<TextBlock
Visibility="{Binding Path=HasNoGalleryUrl, Converter={StaticResource BoolToVisibility}}"
Text="{Binding Path=Id}"/>
</StackPanel>
<StackPanel
Orientation="Horizontal"
Margin="0, 4">
@ -318,6 +336,8 @@ @@ -318,6 +336,8 @@
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ComboBox
Grid.Row="0"
@ -352,6 +372,20 @@ @@ -352,6 +372,20 @@
Width="16"/>
</Hyperlink>
</TextBlock>
<CheckBox
Grid.Row="2"
Grid.ColumnSpan="2"
Margin="2"
Content="Include Prerelease"
Visibility="{Binding Path=ShowPrerelease, Converter={StaticResource BoolToVisibility}}"
IsChecked="{Binding Path=IncludePrerelease}"/>
<Button
Grid.Row="3"
Grid.Column="1"
Margin="2"
Visibility="{Binding Path=IsUpdateAllPackagesEnabled, Converter={StaticResource BoolToVisibility}}"
Content="Update All"
Command="{Binding Path=UpdateAllPackagesCommand}"/>
</Grid>
<ContentControl
Grid.Row="1"

63
src/AddIns/Misc/PackageManagement/Project/Src/PackagesViewModel.cs

@ -13,7 +13,7 @@ using NuGet; @@ -13,7 +13,7 @@ using NuGet;
namespace ICSharpCode.PackageManagement
{
public abstract class PackagesViewModel : ViewModelBase<PackagesViewModel>, IDisposable
public abstract class PackagesViewModel : ViewModelBase<PackagesViewModel>, IDisposable, IPackageViewModelParent
{
Pages pages = new Pages();
@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement @@ -22,6 +22,7 @@ namespace ICSharpCode.PackageManagement
ITaskFactory taskFactory;
IEnumerable<IPackage> allPackages;
ITask<PackagesForSelectedPageResult> task;
bool includePrerelease;
public PackagesViewModel(
IRegisteredPackageRepositories registeredPackageRepositories,
@ -44,12 +45,14 @@ namespace ICSharpCode.PackageManagement @@ -44,12 +45,14 @@ namespace ICSharpCode.PackageManagement
ShowPreviousPageCommand = new DelegateCommand(param => ShowPreviousPage());
ShowPageCommand = new DelegateCommand(param => ExecuteShowPageCommand(param));
SearchCommand = new DelegateCommand(param => Search());
UpdateAllPackagesCommand = new DelegateCommand(param => UpdateAllPackages());
}
public ICommand ShowNextPageCommand { get; private set; }
public ICommand ShowPreviousPageCommand { get; private set; }
public ICommand ShowPageCommand { get; private set; }
public ICommand SearchCommand { get; private set; }
public ICommand UpdateAllPackagesCommand { get; private set; }
public void Dispose()
{
@ -265,7 +268,7 @@ namespace ICSharpCode.PackageManagement @@ -265,7 +268,7 @@ namespace ICSharpCode.PackageManagement
{
var repository = registeredPackageRepositories.ActiveRepository;
var packageFromRepository = new PackageFromRepository(package, repository);
return packageViewModelFactory.CreatePackageViewModel(packageFromRepository);
return packageViewModelFactory.CreatePackageViewModel(this, packageFromRepository);
}
public int SelectedPageNumber {
@ -281,7 +284,7 @@ namespace ICSharpCode.PackageManagement @@ -281,7 +284,7 @@ namespace ICSharpCode.PackageManagement
public int PageSize {
get { return pages.PageSize; }
set { pages.PageSize = value; }
set { pages.PageSize = value; }
}
public bool IsPaged {
@ -361,5 +364,59 @@ namespace ICSharpCode.PackageManagement @@ -361,5 +364,59 @@ namespace ICSharpCode.PackageManagement
}
}
}
public bool ShowUpdateAllPackages { get; set; }
public bool IsUpdateAllPackagesEnabled {
get {
return ShowUpdateAllPackages && (TotalItems > 1);
}
}
void UpdateAllPackages()
{
try {
packageViewModelFactory.PackageManagementEvents.OnPackageOperationsStarting();
TryUpdatingAllPackages();
} catch (Exception ex) {
ReportError(ex);
LogError(ex);
}
}
void LogError(Exception ex)
{
packageViewModelFactory
.Logger
.Log(MessageLevel.Error, ex.ToString());
}
void ReportError(Exception ex)
{
packageViewModelFactory
.PackageManagementEvents
.OnPackageOperationError(ex);
}
protected virtual void TryUpdatingAllPackages()
{
}
protected IPackageActionRunner ActionRunner {
get { return packageViewModelFactory.PackageActionRunner; }
}
public bool IncludePrerelease {
get { return includePrerelease; }
set {
if (includePrerelease != value) {
includePrerelease = value;
ReadPackages();
OnPropertyChanged(null);
}
}
}
public bool ShowPrerelease { get; set; }
}
}

19
src/AddIns/Misc/PackageManagement/Project/Src/ParentPackagesOperationEventArgs.cs

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
// 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 NuGet;
namespace ICSharpCode.PackageManagement
{
public class ParentPackagesOperationEventArgs : EventArgs
{
public ParentPackagesOperationEventArgs(IEnumerable<IPackage> packages)
{
this.Packages = packages;
}
public IEnumerable<IPackage> Packages { get; private set; }
}
}

26
src/AddIns/Misc/PackageManagement/Project/Src/ProcessPackageAction.cs

@ -8,7 +8,7 @@ using NuGet; @@ -8,7 +8,7 @@ using NuGet;
namespace ICSharpCode.PackageManagement
{
public abstract class ProcessPackageAction
public abstract class ProcessPackageAction : IPackageAction
{
IPackageManagementEvents packageManagementEvents;
@ -45,11 +45,23 @@ namespace ICSharpCode.PackageManagement @@ -45,11 +45,23 @@ namespace ICSharpCode.PackageManagement
public void Execute()
{
BeforeExecute();
if (PackageScriptRunner != null) {
ExecuteWithScriptRunner();
} else {
ExecuteCore();
RunWithExceptionReporting(() => {
BeforeExecute();
if (PackageScriptRunner != null) {
ExecuteWithScriptRunner();
} else {
ExecuteCore();
}
});
}
void RunWithExceptionReporting(Action action)
{
try {
action();
} catch (Exception ex) {
packageManagementEvents.OnPackageOperationError(ex);
throw;
}
}
@ -107,7 +119,7 @@ namespace ICSharpCode.PackageManagement @@ -107,7 +119,7 @@ namespace ICSharpCode.PackageManagement
void FindPackage()
{
Package =Project
Package = Project
.SourceRepository
.FindPackage(PackageId, PackageVersion, AllowPrereleaseVersions, allowUnlisted: true);
}

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

@ -19,9 +19,10 @@ namespace ICSharpCode.PackageManagement @@ -19,9 +19,10 @@ namespace ICSharpCode.PackageManagement
packageManagementEvents.ParentPackageInstalled += ProjectChanged;
packageManagementEvents.ParentPackageUninstalled += ProjectChanged;
packageManagementEvents.ParentPackagesUpdated += ProjectChanged;
}
void ProjectChanged(object sender, ParentPackageOperationEventArgs e)
void ProjectChanged(object sender, EventArgs e)
{
projectService.RefreshProjectBrowser();
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save