Browse Source

Merge branch 'master' of github.com:icsharpcode/SharpDevelop

pull/708/head
Peter Forstmeier 10 years ago
parent
commit
e454d66947
  1. 3
      data/resources/StringResources.de.resx
  2. 3
      data/resources/StringResources.es-mx.resx
  3. 6
      data/resources/StringResources.es.resx
  4. 73
      data/resources/StringResources.fr.resx
  5. 104
      data/resources/StringResources.it.resx
  6. 108
      data/resources/StringResources.ru.resx
  7. 150
      data/resources/StringResources.tr.resx
  8. 3
      src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj
  9. 13
      src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs
  10. 1
      src/AddIns/Debugger/Debugger.Tests/Tests/Breakpoint_Tests.cs
  11. 1
      src/AddIns/Debugger/Debugger.Tests/Tests/Process_MemoryReadWrite.cs
  12. 1
      src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_SetIP.cs
  13. 3
      src/AddIns/Debugger/Debugger.Tests/Tests/_HelloWorldTest.cs
  14. 5
      src/AddIns/Misc/AddInManager2/AddInManager2.Tests/Fakes/FakePackage.cs
  15. 6
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/InstallPackageCmdlet.cs
  16. 116
      src/AddIns/Misc/PackageManagement/Cmdlets/Project/Src/UpdatePackageCmdlet.cs
  17. 23
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/InstallPackageCmdletTests.cs
  18. 313
      src/AddIns/Misc/PackageManagement/Cmdlets/Test/Src/UpdatePackageCmdletTests.cs
  19. 3
      src/AddIns/Misc/PackageManagement/Project/PackageManagement.csproj
  20. 9
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackage.cs
  21. 13
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakePackageManagementProject.cs
  22. 61
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeReinstallPackageAction.cs
  23. 30
      src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeSettings.cs
  24. 5
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageFromRepositoryExtensions.cs
  25. 3
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageManagementProject.cs
  26. 5
      src/AddIns/Misc/PackageManagement/Project/Src/IPackageRepositoryExtensions.cs
  27. 12
      src/AddIns/Misc/PackageManagement/Project/Src/InstallPackageAction.cs
  28. 43
      src/AddIns/Misc/PackageManagement/Project/Src/NullOpenPackageReadmeMonitor.cs
  29. 5
      src/AddIns/Misc/PackageManagement/Project/Src/PackageFromRepository.cs
  30. 10
      src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProject.cs
  31. 4
      src/AddIns/Misc/PackageManagement/Project/Src/PackageOperationsResolverFactory.cs
  32. 5
      src/AddIns/Misc/PackageManagement/Project/Src/ProcessPackageAction.cs
  33. 70
      src/AddIns/Misc/PackageManagement/Project/Src/ReinstallPackageAction.cs
  34. 2
      src/AddIns/Misc/PackageManagement/RequiredLibraries/COPYRIGHT.txt
  35. 10
      src/AddIns/Misc/PackageManagement/RequiredLibraries/CREDITS.txt
  36. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/Microsoft.Web.XmlTransform.dll
  37. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Console.Types.dll
  38. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Core.dll
  39. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.exe
  40. 2
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  41. 22
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeOperationAwarePackageRepository.cs
  42. 52
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/PackageRepositoryOperationInfo.cs
  43. 3
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/TestableInstallPackageAction.cs
  44. 25
      src/AddIns/Misc/PackageManagement/Test/Src/InstallPackageActionTests.cs
  45. 13
      src/AddIns/Misc/PackageManagement/Test/Src/PackageFromRepositoryTests.cs
  46. 45
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsTests.cs
  47. 5
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementOptionsViewModelTests.cs
  48. 30
      src/AddIns/Misc/PackageManagement/Test/Src/PackageManagementProjectTests.cs
  49. 13
      src/AddIns/Misc/PackageManagement/Test/Src/ProcessPackageActionTests.cs
  50. 148
      src/AddIns/Misc/PackageManagement/Test/Src/ReinstallPackageActionTests.cs
  51. 6
      src/Main/Base/Project/Util/DotnetDetection.cs
  52. 2
      src/Main/GlobalAssemblyInfo.cs.template

3
data/resources/StringResources.de.resx

@ -408,9 +408,6 @@ Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind S
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Klassendiagramm anzeigen</value> <value>Klassendiagramm anzeigen</value>
</data> </data>
<data name="AddIns.Debugger.Console.Clear" xml:space="preserve">
<value>Konsole löschen</value>
</data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve"> <data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Verlauf löschen</value> <value>Verlauf löschen</value>
</data> </data>

3
data/resources/StringResources.es-mx.resx

@ -409,9 +409,6 @@ Dejarán de funcionar después de desinstalar este complemento! ¿Esta seguro de
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Mostrar Diagrama de Clase</value> <value>Mostrar Diagrama de Clase</value>
</data> </data>
<data name="AddIns.Debugger.Console.Clear" xml:space="preserve">
<value>Limpiar consola</value>
</data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve"> <data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Borrar Historial</value> <value>Borrar Historial</value>
</data> </data>

6
data/resources/StringResources.es.resx

@ -1679,6 +1679,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve"> <data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>Cursiva</value> <value>Cursiva</value>
</data> </data>
<data name="Dialog.HighlightingEditor.ColorDlg.Underline" xml:space="preserve">
<value>Subrayado</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve"> <data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Exportar colores de resaltado</value> <value>Exportar colores de resaltado</value>
</data> </data>
@ -2077,6 +2080,9 @@ Para crear/manipular un objeto ActiveX/COM, arrastre una clase de un Control/Bib
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Detener ejecución en la primera línea.</value> <value>Detener ejecución en la primera línea.</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.ChooseExceptions" xml:space="preserve">
<value>Seleccione excepciones</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Habilitar decompilador</value> <value>Habilitar decompilador</value>
</data> </data>

73
data/resources/StringResources.fr.resx

@ -399,8 +399,8 @@ Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous cont
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Afficher le diagramme des classes</value> <value>Afficher le diagramme des classes</value>
</data> </data>
<data name="AddIns.Debugger.Console.Clear" xml:space="preserve"> <data name="AddIns.Debugger.Console.ClearConsole" xml:space="preserve">
<value>Vider la console</value> <value>Effacer la console</value>
</data> </data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve"> <data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Effacer l'historique</value> <value>Effacer l'historique</value>
@ -2619,6 +2619,69 @@ Voulez-vous ajouter le nouveau fichier au projet ${CurrentProjectName}?</value>
<data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve"> <data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve">
<value>Fichier de r&amp;essources Win32:</value> <value>Fichier de r&amp;essources Win32:</value>
</data> </data>
<data name="Dialog.ProjectOptions.AssemblyInfo" xml:space="preserve">
<value>Informations sur l'Assembly</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyInfoNotFound" xml:space="preserve">
<value>Fichier Assembly.info introuvable. Veuillez vous assurer qu'il existe dans le projet.</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyVersion" xml:space="preserve">
<value>Version:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.ClsCompliant" xml:space="preserve">
<value>Conforme CLS</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Company" xml:space="preserve">
<value>Société:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Copyright" xml:space="preserve">
<value>Copyright:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.DefaultAlias" xml:space="preserve">
<value>Alias par défaut:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Description" xml:space="preserve">
<value>Description:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.FileVersion" xml:space="preserve">
<value>Version du fichier:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.GUID" xml:space="preserve">
<value>GUID:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.IncorrectValue" xml:space="preserve">
<value>Une valeur du fichier Assembly.info est incorrecte.</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.InformationalVersion" xml:space="preserve">
<value>Version informelle:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitOptimization" xml:space="preserve">
<value>Optimisation JIT</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitTracking" xml:space="preserve">
<value>Suivi JIT</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.MakeAssemblyCOMVisible" xml:space="preserve">
<value>Rendre l'Assembly visible par COM:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NeutralLanguage" xml:space="preserve">
<value>Language neutre:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NewGUID" xml:space="preserve">
<value>Nouveau GUID</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.None" xml:space="preserve">
<value>Aucun</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Product" xml:space="preserve">
<value>Produit:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Title" xml:space="preserve">
<value>Titre:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Trademark" xml:space="preserve">
<value>Trademark:</value>
</data>
<data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve"> <data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve">
<value>Avancé</value> <value>Avancé</value>
</data> </data>
@ -4835,6 +4898,12 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Extension Visual Studio</value> <value>Extension Visual Studio</value>
</data> </data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.EnableAppXamlParsing" xml:space="preserve">
<value>Activer l'analyse de App.xml</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.Title" xml:space="preserve">
<value>Editeur WPF</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve"> <data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve">
<value>Appuyer sur "Alt" pour saisir un Conteneur</value> <value>Appuyer sur "Alt" pour saisir un Conteneur</value>
</data> </data>

104
data/resources/StringResources.it.resx

@ -409,9 +409,6 @@ Smetteranno di funzionare dopo la rimozione di questo Componente! Sei sicuro di
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Mostra Diagramma delle Classi</value> <value>Mostra Diagramma delle Classi</value>
</data> </data>
<data name="AddIns.Debugger.Console.Clear" xml:space="preserve">
<value>Pulisci console</value>
</data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve"> <data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Cancella cronologia</value> <value>Cancella cronologia</value>
</data> </data>
@ -1836,7 +1833,7 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<value>Errore parsing espressione regolare:</value> <value>Errore parsing espressione regolare:</value>
</data> </data>
<data name="Dialog.NewProject.SearchReplace.FindAll" xml:space="preserve"> <data name="Dialog.NewProject.SearchReplace.FindAll" xml:space="preserve">
<value>Trova &amp;tutti</value> <value>Trov&amp;a tutti</value>
</data> </data>
<data name="Dialog.NewProject.SearchReplace.FindButton" xml:space="preserve"> <data name="Dialog.NewProject.SearchReplace.FindButton" xml:space="preserve">
<value>&amp;Trova</value> <value>&amp;Trova</value>
@ -2244,10 +2241,10 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<value>Cre&amp;a copia di backup</value> <value>Cre&amp;a copia di backup</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.DefaultFileEncoding" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.LoadSaveOptions.DefaultFileEncoding" xml:space="preserve">
<value>Codifica file predefinita:</value> <value>Codifica fil&amp;e predefinita:</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.DetectExternalChanges" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.LoadSaveOptions.DetectExternalChanges" xml:space="preserve">
<value>&amp;Controlla modifiche esterne ai files</value> <value>Controlla mo&amp;difiche esterne ai files</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.LoadLabel" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.LoadSaveOptions.LoadLabel" xml:space="preserve">
<value>Carica</value> <value>Carica</value>
@ -2446,7 +2443,7 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<value>Abilita &amp;doppio buffer</value> <value>Abilita &amp;doppio buffer</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.FoldingCheckBox" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.TextEditor.General.FoldingCheckBox" xml:space="preserve">
<value>Abilita c&amp;artelle</value> <value>Abilita &amp;struttura</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.TextEditor.General.FontGroupBox" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.TextEditor.General.FontGroupBox" xml:space="preserve">
<value>Carattere</value> <value>Carattere</value>
@ -2634,6 +2631,69 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve"> <data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve">
<value>File di R&amp;isorsa Win32:</value> <value>File di R&amp;isorsa Win32:</value>
</data> </data>
<data name="Dialog.ProjectOptions.AssemblyInfo" xml:space="preserve">
<value>Informazioni assembly</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyInfoNotFound" xml:space="preserve">
<value>Il file delle informazioni dell'assembly non è stato trovato. Prego assicurarsi che il progetto contenga il file</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyVersion" xml:space="preserve">
<value>Versione assembly:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.ClsCompliant" xml:space="preserve">
<value>Compatibile CLS</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Company" xml:space="preserve">
<value>Società:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Copyright" xml:space="preserve">
<value>Copyright:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.DefaultAlias" xml:space="preserve">
<value>Alias predefinito:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Description" xml:space="preserve">
<value>Descrizione:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.FileVersion" xml:space="preserve">
<value>Versione File:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.GUID" xml:space="preserve">
<value>GUID:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.IncorrectValue" xml:space="preserve">
<value>Uno dei valori delle informazioni dell'assembly non è corretto.</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.InformationalVersion" xml:space="preserve">
<value>Versione informativa:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitOptimization" xml:space="preserve">
<value>Ottimizzazione JIT</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitTracking" xml:space="preserve">
<value>Monitoraggio JIT</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.MakeAssemblyCOMVisible" xml:space="preserve">
<value>Rendi l'assembly visibile a COM</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NeutralLanguage" xml:space="preserve">
<value>Linguaggio neutrale:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NewGUID" xml:space="preserve">
<value>Nuovo GUID</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.None" xml:space="preserve">
<value>Nessuna</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Product" xml:space="preserve">
<value>Prodotto:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Title" xml:space="preserve">
<value>Titolo:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Trademark" xml:space="preserve">
<value>Marchio:</value>
</data>
<data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve"> <data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve">
<value>Avanzato</value> <value>Avanzato</value>
</data> </data>
@ -4858,6 +4918,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Estensione Visual Studio</value> <value>Estensione Visual Studio</value>
</data> </data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.EnableAppXamlParsing" xml:space="preserve">
<value>Attiva l'analisi di App.xaml</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.Title" xml:space="preserve">
<value>Editor WPF</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve"> <data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve">
<value>Premere "Alt" per entrare nel Contenitore</value> <value>Premere "Alt" per entrare nel Contenitore</value>
</data> </data>
@ -5345,7 +5411,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Interrompi</value> <value>Interrompi</value>
</data> </data>
<data name="MainWindow.Windows.Debug.ExceptionForm.BreakOnHandled" xml:space="preserve"> <data name="MainWindow.Windows.Debug.ExceptionForm.BreakOnHandled" xml:space="preserve">
<value>Arresta su l'eccezione gestita ${ExceptionName}</value> <value>Arresta su eccezione gestita ${ExceptionName}</value>
</data> </data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Continue" xml:space="preserve"> <data name="MainWindow.Windows.Debug.ExceptionForm.Continue" xml:space="preserve">
<value>Continua</value> <value>Continua</value>
@ -6170,10 +6236,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Aggiorna bitmap ...</value> <value>Aggiorna bitmap ...</value>
</data> </data>
<data name="ResourceEditor.BitmapView.UpdateCursor" xml:space="preserve"> <data name="ResourceEditor.BitmapView.UpdateCursor" xml:space="preserve">
<value>Cursore di aggiornamento ...</value> <value>Aggiorna cursore ...</value>
</data> </data>
<data name="ResourceEditor.BitmapView.UpdateIcon" xml:space="preserve"> <data name="ResourceEditor.BitmapView.UpdateIcon" xml:space="preserve">
<value>Icona di aggiornamento ...</value> <value>Aggiorna icona ...</value>
</data> </data>
<data name="ResourceEditor.DeleteEntry.Confirm" xml:space="preserve"> <data name="ResourceEditor.DeleteEntry.Confirm" xml:space="preserve">
<value>Vuoi veramente cancellare la(e) risorsa(e) selezionata(e)?</value> <value>Vuoi veramente cancellare la(e) risorsa(e) selezionata(e)?</value>
@ -7449,7 +7515,7 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>Ferma il processo corrente e termina il debug.</value> <value>Ferma il processo corrente e termina il debug.</value>
</data> </data>
<data name="XML.MainMenu.DebugMenu.ToggleBreakpoint" xml:space="preserve"> <data name="XML.MainMenu.DebugMenu.ToggleBreakpoint" xml:space="preserve">
<value>Attiva/Disattiva BreakPoint</value> <value>Commuta Breakpoint</value>
</data> </data>
<data name="XML.MainMenu.EditMenu" xml:space="preserve"> <data name="XML.MainMenu.EditMenu" xml:space="preserve">
<value>&amp;Modifica</value> <value>&amp;Modifica</value>
@ -7479,10 +7545,10 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>Mostra solo le &amp;definizioni</value> <value>Mostra solo le &amp;definizioni</value>
</data> </data>
<data name="XML.MainMenu.EditMenu.FoldingMenu.ToggleAllFoldings" xml:space="preserve"> <data name="XML.MainMenu.EditMenu.FoldingMenu.ToggleAllFoldings" xml:space="preserve">
<value>Mostra &amp;tutte le Cartelle</value> <value>Commuta &amp;tutte le Cartelle</value>
</data> </data>
<data name="XML.MainMenu.EditMenu.FoldingMenu.ToggleFolding" xml:space="preserve"> <data name="XML.MainMenu.EditMenu.FoldingMenu.ToggleFolding" xml:space="preserve">
<value>Mo&amp;stra cartella</value> <value>Commu&amp;ta cartella</value>
</data> </data>
<data name="XML.MainMenu.EditMenu.FormatMenu" xml:space="preserve"> <data name="XML.MainMenu.EditMenu.FormatMenu" xml:space="preserve">
<value>&amp;Formato</value> <value>&amp;Formato</value>
@ -7668,7 +7734,7 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>&amp;Mezzo</value> <value>&amp;Mezzo</value>
</data> </data>
<data name="XML.MainMenu.FormatMenu.CenterMenu" xml:space="preserve"> <data name="XML.MainMenu.FormatMenu.CenterMenu" xml:space="preserve">
<value>&amp;Centro nella Form</value> <value>&amp;Centra nella Form</value>
</data> </data>
<data name="XML.MainMenu.FormatMenu.CenterMenu.CenterHorizontally" xml:space="preserve"> <data name="XML.MainMenu.FormatMenu.CenterMenu.CenterHorizontally" xml:space="preserve">
<value>&amp;Orizzontalmente</value> <value>&amp;Orizzontalmente</value>
@ -7695,7 +7761,7 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>Rendi &amp;Uguali</value> <value>Rendi &amp;Uguali</value>
</data> </data>
<data name="XML.MainMenu.FormatMenu.HorizontalSpacingMenu.SendToBack" xml:space="preserve"> <data name="XML.MainMenu.FormatMenu.HorizontalSpacingMenu.SendToBack" xml:space="preserve">
<value>Porta in &amp;Sfondo</value> <value>Porta su &amp;Sfondo</value>
</data> </data>
<data name="XML.MainMenu.FormatMenu.LineUpIcons" xml:space="preserve"> <data name="XML.MainMenu.FormatMenu.LineUpIcons" xml:space="preserve">
<value>A&amp;llinea Icone</value> <value>A&amp;llinea Icone</value>
@ -7749,7 +7815,7 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>&amp;Incrementa</value> <value>&amp;Incrementa</value>
</data> </data>
<data name="XML.MainMenu.FormatMenu.VerticalSpacingMenu.VertSpaceMakeEqual" xml:space="preserve"> <data name="XML.MainMenu.FormatMenu.VerticalSpacingMenu.VertSpaceMakeEqual" xml:space="preserve">
<value>Rendi &amp;Uguali</value> <value>Rendi &amp;Uguale</value>
</data> </data>
<data name="XML.MainMenu.HelpMenu" xml:space="preserve"> <data name="XML.MainMenu.HelpMenu" xml:space="preserve">
<value>&amp;Aiuto</value> <value>&amp;Aiuto</value>
@ -7809,7 +7875,7 @@ I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
<value>Compila il progetto o il buffer corrente (quando nessun progetto è aperto)(salva automaticamente)</value> <value>Compila il progetto o il buffer corrente (quando nessun progetto è aperto)(salva automaticamente)</value>
</data> </data>
<data name="XML.MainMenu.RunMenu.Compile.StopDebuggingQuestion" xml:space="preserve"> <data name="XML.MainMenu.RunMenu.Compile.StopDebuggingQuestion" xml:space="preserve">
<value>Devi interrompere il debugger generare il progetto. <value>Devi interrompere il debugger per generare il progetto.
Vuoi fermare il debug?</value> Vuoi fermare il debug?</value>
</data> </data>
<data name="XML.MainMenu.RunMenu.Compile.StopDebuggingTitle" xml:space="preserve"> <data name="XML.MainMenu.RunMenu.Compile.StopDebuggingTitle" xml:space="preserve">
@ -7843,7 +7909,7 @@ Vuoi fermare il debug?</value>
<value>&amp;Vai a...</value> <value>&amp;Vai a...</value>
</data> </data>
<data name="XML.MainMenu.SearchMenu.GotoBrace" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.GotoBrace" xml:space="preserve">
<value>Vai alla parentesi graffa</value> <value>Vai alla parentesi graffa corrispondente</value>
</data> </data>
<data name="XML.MainMenu.SearchMenu.IncrementalSearch" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.IncrementalSearch" xml:space="preserve">
<value>Ricerca Incrementale</value> <value>Ricerca Incrementale</value>
@ -7870,7 +7936,7 @@ Vuoi fermare il debug?</value>
<value>Cerca per Problemi...</value> <value>Cerca per Problemi...</value>
</data> </data>
<data name="XML.MainMenu.SearchMenu.ToggleBookmark" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.ToggleBookmark" xml:space="preserve">
<value>A&amp;ttiva segnalibro</value> <value>Commu&amp;ta segnalibro</value>
</data> </data>
<data name="XML.MainMenu.SearchMenu.ToggleBookmark.Description" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.ToggleBookmark.Description" xml:space="preserve">
<value>Mette/toglie segnalibro alla linea corrente</value> <value>Mette/toglie segnalibro alla linea corrente</value>

108
data/resources/StringResources.ru.resx

@ -405,9 +405,6 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Показать диаграмму классов</value> <value>Показать диаграмму классов</value>
</data> </data>
<data name="AddIns.Debugger.Console.Clear" xml:space="preserve">
<value>Очистить консоль</value>
</data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve"> <data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Удалить историю</value> <value>Удалить историю</value>
</data> </data>
@ -454,7 +451,7 @@
<value>Не удалось запустить Help Library Manager, так как каталог справки не выбран/не установлен. Пожалуйста, проверьте настройки (Инструменты -&gt; Параметры -&gt; Инструменты -&gt; Microsoft Help Viewer).</value> <value>Не удалось запустить Help Library Manager, так как каталог справки не выбран/не установлен. Пожалуйста, проверьте настройки (Инструменты -&gt; Параметры -&gt; Инструменты -&gt; Microsoft Help Viewer).</value>
</data> </data>
<data name="AddIns.HelpViewer.HLMNotAvailableDownloadWinSDK" xml:space="preserve"> <data name="AddIns.HelpViewer.HLMNotAvailableDownloadWinSDK" xml:space="preserve">
<value>Не удалось найти Help Library Manager. Для использования контекстной помощи в SharpDeveloper, необходимо скачать и установить Microsoft's Windows SDK 7.1.</value> <value>Не удалось найти Help Library Manager. Для использования контекстной помощи в SharpDevelop, необходимо скачать и установить Microsoft Windows SDK 7.1.</value>
</data> </data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve"> <data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Не удалось найти Help Library Manager. Пожалуйста, удостоверьтесь в том, что он был корректно установлен.</value> <value>Не удалось найти Help Library Manager. Пожалуйста, удостоверьтесь в том, что он был корректно установлен.</value>
@ -2589,6 +2586,69 @@
<data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve"> <data name="Dialog.ProjectOptions.ApplicationSettings.Win32Resource" xml:space="preserve">
<value>Файл ресурсов Win32:</value> <value>Файл ресурсов Win32:</value>
</data> </data>
<data name="Dialog.ProjectOptions.AssemblyInfo" xml:space="preserve">
<value>Данные сборки</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyInfoNotFound" xml:space="preserve">
<value>Файл AssemblyInfo.cs не найден. Убедитесь в том, что проект содержит файл с данными сборки.</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.AssemblyVersion" xml:space="preserve">
<value>Версия сборки:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.ClsCompliant" xml:space="preserve">
<value>Соответствие спецификации CLS</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Company" xml:space="preserve">
<value>Компания:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Copyright" xml:space="preserve">
<value>Копирайт:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.DefaultAlias" xml:space="preserve">
<value>Псевдоним:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Description" xml:space="preserve">
<value>Описание:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.FileVersion" xml:space="preserve">
<value>Версия файла:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.GUID" xml:space="preserve">
<value>GUID:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.IncorrectValue" xml:space="preserve">
<value>Одно из значений данных сборки указано неверно.</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.InformationalVersion" xml:space="preserve">
<value>Информативная версия:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitOptimization" xml:space="preserve">
<value>JIT-оптимизация</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.JitTracking" xml:space="preserve">
<value>JIT-отслеживание</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.MakeAssemblyCOMVisible" xml:space="preserve">
<value>Сборка видима для COM</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NeutralLanguage" xml:space="preserve">
<value>Нейтральный язык:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.NewGUID" xml:space="preserve">
<value>Новый GUID</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.None" xml:space="preserve">
<value>не указано</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Product" xml:space="preserve">
<value>Продукт:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Title" xml:space="preserve">
<value>Наименование:</value>
</data>
<data name="Dialog.ProjectOptions.AssemblyInfo.Trademark" xml:space="preserve">
<value>Торговая марка:</value>
</data>
<data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve"> <data name="Dialog.ProjectOptions.Build.Advanced" xml:space="preserve">
<value>Дополнительно</value> <value>Дополнительно</value>
</data> </data>
@ -2815,7 +2875,7 @@
<value>Выберите строгое имя для файла ключа:</value> <value>Выберите строгое имя для файла ключа:</value>
</data> </data>
<data name="Dialog.ProjectOptions.Signing.ClickOnce" xml:space="preserve"> <data name="Dialog.ProjectOptions.Signing.ClickOnce" xml:space="preserve">
<value>Подписывание ВОдинЩелчок</value> <value>Подпись ClickOnce</value>
</data> </data>
<data name="Dialog.ProjectOptions.Signing.ClickOnceNotSupported" xml:space="preserve"> <data name="Dialog.ProjectOptions.Signing.ClickOnceNotSupported" xml:space="preserve">
<value>Подпись ClickOnce приложения пока не реализована.</value> <value>Подпись ClickOnce приложения пока не реализована.</value>
@ -3807,6 +3867,12 @@
<data name="ICSharpCode.SharpDevelop.Commands.Print.CreatePrintDocumentError" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.Commands.Print.CreatePrintDocumentError" xml:space="preserve">
<value>Невозможно создать PrintDocument</value> <value>Невозможно создать PrintDocument</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.AddFilesToProject.FileIsReadOnly" xml:space="preserve">
<value>Файл, защищённый от записи, уже существует в данном каталоге.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.NoBackendForProjectType" xml:space="preserve">
<value>Для проекта данного типа не установлен обработчик.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.ProjectFileNotFound" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.Commands.ProjectBrowser.ProjectFileNotFound" xml:space="preserve">
<value>Файл проекта не найден.</value> <value>Файл проекта не найден.</value>
</data> </data>
@ -4055,7 +4121,7 @@
<value>Добавлять комментарий "TODO" в обработчики новых событий</value> <value>Добавлять комментарий "TODO" в обработчики новых событий</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.AssignmentRadioButton" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.AssignmentRadioButton" xml:space="preserve">
<value>Назначение свойств (работает быстрее для небольшого количества свойств, но значительно хуже для большого числа свойств)</value> <value>Присваивание значений (подходит для небольшого количества свойств)</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.DefaultLocalizationModel" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.DefaultLocalizationModel" xml:space="preserve">
<value>Модель локализации по умолчанию</value> <value>Модель локализации по умолчанию</value>
@ -4067,7 +4133,7 @@
<value>Модель локализации</value> <value>Модель локализации</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.ReflectionRadioButton" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.ReflectionRadioButton" xml:space="preserve">
<value>Рефлексия свойств (работает медленнее во время выполнения программы для небольшого количества свойств, но значительно лучше при большом числе свойств, особенно со значениями по умолчанию)</value> <value>Рефлексия (подходит для большого числа свойств, особенно со значениями по умолчанию)</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.PanelName" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.PanelName" xml:space="preserve">
<value>Дизайнер форм</value> <value>Дизайнер форм</value>
@ -4443,22 +4509,22 @@
<value>Покрытие кода</value> <value>Покрытие кода</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.CreateXmlOutputFile" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.CreateXmlOutputFile" xml:space="preserve">
<value>Создать выходной XML файл</value> <value>Создавать XML-файл с результатами</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.LabelEachTest" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.LabelEachTest" xml:space="preserve">
<value>Пометить каждый тест</value> <value>Отмечать каждый тест</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.ShadowCopy" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.ShadowCopy" xml:space="preserve">
<value>Теневая копия</value> <value>Теневое копирование сборок</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.ShowLogo" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.ShowLogo" xml:space="preserve">
<value>Показать логотип</value> <value>Показывать логотип</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.ShowProgress" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.ShowProgress" xml:space="preserve">
<value>Показать прогресс</value> <value>Показывать прогресс</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.OptionsPanel.Thread" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.OptionsPanel.Thread" xml:space="preserve">
<value>Запустить тесты в отдельном потоке</value> <value>Запускать тесты в отдельном потоке</value>
</data> </data>
<data name="ICSharpCode.UnitTesting.RunAllWithCoverage" xml:space="preserve"> <data name="ICSharpCode.UnitTesting.RunAllWithCoverage" xml:space="preserve">
<value>Запустить все тесты с покрытием кода</value> <value>Запустить все тесты с покрытием кода</value>
@ -5431,13 +5497,13 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Невозможно сделать шаг, так как отсутствует активная выбранная функция</value> <value>Невозможно сделать шаг, так как отсутствует активная выбранная функция</value>
</data> </data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchOnNAFrame" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Threads.CannotSwitchOnNAFrame" xml:space="preserve">
<value>Вы не можете переключиться на поток, с недоступным фреймом исполнения.</value> <value>Вы не можете переключиться на поток с недоступным фреймом исполнения.</value>
</data> </data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Threads.CannotSwitchWhileRunning" xml:space="preserve">
<value>Вы не можете переключать потоки пока включён отладчик.</value> <value>Вы не можете переключать потоки пока включён отладчик.</value>
</data> </data>
<data name="MainWindow.Windows.Debug.Threads.CannotSwitchWithoutDecompiledCodeOptions" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Threads.CannotSwitchWithoutDecompiledCodeOptions" xml:space="preserve">
<value>Вы не можете переключиться на поток в декомпилированном коде, без включения декомпилятора.</value> <value>Вы не можете переключиться на поток в декомпилированном коде без включения декомпилятора.</value>
</data> </data>
<data name="MainWindow.Windows.Debug.Threads.Freeze" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Threads.Freeze" xml:space="preserve">
<value>Заморозить</value> <value>Заморозить</value>
@ -6028,7 +6094,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Нецифровой символ</value> <value>Нецифровой символ</value>
</data> </data>
<data name="RegExpTk.RegExpMenu.NonWhitespaceCharacter" xml:space="preserve"> <data name="RegExpTk.RegExpMenu.NonWhitespaceCharacter" xml:space="preserve">
<value>Не пробельный символ</value> <value>Непробельный символ</value>
</data> </data>
<data name="RegExpTk.RegExpMenu.NonWordCharacter" xml:space="preserve"> <data name="RegExpTk.RegExpMenu.NonWordCharacter" xml:space="preserve">
<value>Небуквенный символ</value> <value>Небуквенный символ</value>
@ -6181,7 +6247,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Файлы проектов Visual Basic</value> <value>Файлы проектов Visual Basic</value>
</data> </data>
<data name="SharpDevelop.FileFilter.XmlFiles" xml:space="preserve"> <data name="SharpDevelop.FileFilter.XmlFiles" xml:space="preserve">
<value>XML файлы (*.xml)</value> <value>XML-файлы (*.xml)</value>
</data> </data>
<data name="SharpDevelop.FileFilter.XmlSchemaFiles" xml:space="preserve"> <data name="SharpDevelop.FileFilter.XmlSchemaFiles" xml:space="preserve">
<value>Файлы схем XML (*.xsd)</value> <value>Файлы схем XML (*.xsd)</value>
@ -6259,10 +6325,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Найти базовые символы</value> <value>Найти базовые символы</value>
</data> </data>
<data name="SharpDevelop.Refactoring.FindDerivedClassesCommand" xml:space="preserve"> <data name="SharpDevelop.Refactoring.FindDerivedClassesCommand" xml:space="preserve">
<value>Найти полученные классы</value> <value>Найти наследуемые классы</value>
</data> </data>
<data name="SharpDevelop.Refactoring.FindDerivedClassesOrOverridesCommand" xml:space="preserve"> <data name="SharpDevelop.Refactoring.FindDerivedClassesOrOverridesCommand" xml:space="preserve">
<value>Найти полученные символы</value> <value>Найти наследуемые символы</value>
</data> </data>
<data name="SharpDevelop.Refactoring.FindingReferences" xml:space="preserve"> <data name="SharpDevelop.Refactoring.FindingReferences" xml:space="preserve">
<value>Поиск ссылок...</value> <value>Поиск ссылок...</value>
@ -7025,10 +7091,10 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес
<value>Файл App.Config</value> <value>Файл App.Config</value>
</data> </data>
<data name="Templates.File.Xml.EmptyXml.Name" xml:space="preserve"> <data name="Templates.File.Xml.EmptyXml.Name" xml:space="preserve">
<value>Пустой XML файл</value> <value>Пустой XML-файл</value>
</data> </data>
<data name="Templates.File.Xml.EmptyXmlFile.Description" xml:space="preserve"> <data name="Templates.File.Xml.EmptyXmlFile.Description" xml:space="preserve">
<value>Создаёт пустой XML файл.</value> <value>Создаёт пустой XML-файл.</value>
</data> </data>
<data name="Templates.File.Xml.EmptyXmlForm.Description" xml:space="preserve"> <data name="Templates.File.Xml.EmptyXmlForm.Description" xml:space="preserve">
<value>Создать пустую форму XML</value> <value>Создать пустую форму XML</value>

150
data/resources/StringResources.tr.resx

@ -408,6 +408,9 @@ Eklenti kaldırıldıktan sonra çalışması durabilir! Devam etmek istediğini
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve"> <data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Sınıf Şemasını Göster</value> <value>Sınıf Şemasını Göster</value>
</data> </data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Geçmişi sil</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve"> <data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>Bu işlem için TortoiseGit yüklü olmalıdır.</value> <value>Bu işlem için TortoiseGit yüklü olmalıdır.</value>
</data> </data>
@ -525,6 +528,21 @@ Eklenti kaldırıldıktan sonra çalışması durabilir! Devam etmek istediğini
<data name="AddIns.HtmlHelp2.Title" xml:space="preserve"> <data name="AddIns.HtmlHelp2.Title" xml:space="preserve">
<value>Başlık</value> <value>Başlık</value>
</data> </data>
<data name="AddIns.PackageManagement.ConsolePad.Title" xml:space="preserve">
<value>Paket yönetim konsolu</value>
</data>
<data name="AddIns.PackageManagement.Menu.ManagePackages" xml:space="preserve">
<value>Paketleri yönet...</value>
</data>
<data name="AddIns.PackageManagement.Menu.RestorePackages" xml:space="preserve">
<value>Paketleri geri yükle</value>
</data>
<data name="AddIns.PackageManagement.Options.PackageSources" xml:space="preserve">
<value>Paket kaynakları</value>
</data>
<data name="AddIns.PackageManagement.Options.Title" xml:space="preserve">
<value>Paket yönetimi</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve"> <data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Sonuç</value> <value>Sonuç</value>
</data> </data>
@ -1573,6 +1591,9 @@ Bir ActiveX / COM nesnesi oluşturmak / değiştirmek için, nesne ağacı veya
<data name="CSharpBinding.InsertAnonymousMethodWithParameters" xml:space="preserve"> <data name="CSharpBinding.InsertAnonymousMethodWithParameters" xml:space="preserve">
<value>Parametreli anonim yöntem yerleştir.</value> <value>Parametreli anonim yöntem yerleştir.</value>
</data> </data>
<data name="Debugger.Visualizers.ColumnPickerLabel" xml:space="preserve">
<value>Kolonlar:</value>
</data>
<data name="Dialog.About.DialogName" xml:space="preserve"> <data name="Dialog.About.DialogName" xml:space="preserve">
<value>SharpDevelop Hakkında</value> <value>SharpDevelop Hakkında</value>
</data> </data>
@ -1594,6 +1615,12 @@ Bir ActiveX / COM nesnesi oluşturmak / değiştirmek için, nesne ağacı veya
<data name="Dialog.About.VersionInfoTabName.VersionColumn" xml:space="preserve"> <data name="Dialog.About.VersionInfoTabName.VersionColumn" xml:space="preserve">
<value>Sürüm</value> <value>Sürüm</value>
</data> </data>
<data name="Dialog.AddServiceReference.OperationsLabel" xml:space="preserve">
<value>İşlemler:</value>
</data>
<data name="Dialog.AddServiceReference.ServicesLabel" xml:space="preserve">
<value>Servisler:</value>
</data>
<data name="Dialog.Componnents.RichMenuItem.NoRecentFilesString" xml:space="preserve"> <data name="Dialog.Componnents.RichMenuItem.NoRecentFilesString" xml:space="preserve">
<value>son dosyalar</value> <value>son dosyalar</value>
</data> </data>
@ -1680,6 +1707,9 @@ Satır numaraları, sınıf yada dosya adları girebilirsiniz.
<data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve"> <data name="Dialog.HighlightingEditor.ColorDlg.Italic" xml:space="preserve">
<value>İtalik</value> <value>İtalik</value>
</data> </data>
<data name="Dialog.HighlightingEditor.ColorDlg.Underline" xml:space="preserve">
<value>Altı çizili</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve"> <data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Renk vurgulamayı dışa aktar</value> <value>Renk vurgulamayı dışa aktar</value>
</data> </data>
@ -1984,6 +2014,12 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<data name="Dialog.Options.IDEOptions.CodeCompletion.ClearCache" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.ClearCache" xml:space="preserve">
<value>Önbelleği temizle</value> <value>Önbelleği temizle</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.CommitOnCharacters" xml:space="preserve">
<value>Basılı karaktere bağlı kalarak seçili kod tamamlamayı ekle:</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.CommitOnTabEnterOnly" xml:space="preserve">
<value>Sadece &lt;Tab&gt; veya &lt;Enter&gt; tuşuna basarak seçili kod tamamlama öğersi ekle.</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.CompleteWhenTyping" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.CompleteWhenTyping" xml:space="preserve">
<value>Bir karakter eklendiğinde tamamlama listesini göster</value> <value>Bir karakter eklendiğinde tamamlama listesini göster</value>
</data> </data>
@ -2005,6 +2041,9 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<data name="Dialog.Options.IDEOptions.CodeCompletion.SaveItemCountBeforeNumber" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.SaveItemCountBeforeNumber" xml:space="preserve">
<value>Kaydet</value> <value>Kaydet</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLabel" xml:space="preserve">
<value>İpucu ayarları</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTarget" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTarget" xml:space="preserve">
<value>Araçipuçları linkler gitmeli</value> <value>Araçipuçları linkler gitmeli</value>
</data> </data>
@ -2068,12 +2107,24 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.BreakAtBeginning" xml:space="preserve">
<value>Yürütmenin ilk satırında ara ver.</value> <value>Yürütmenin ilk satırında ara ver.</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.ChooseExceptions" xml:space="preserve">
<value>İstisnaları seçiniz</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Tekrar derlemeyi etkinleştir</value> <value>Tekrar derlemeyi etkinleştir</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableEditAndContinue" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.EnableEditAndContinue" xml:space="preserve">
<value>Düzenle ve Devam eti Etkinleştir</value> <value>Düzenle ve Devam eti Etkinleştir</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.ExceptionFilter.ColumnExpression" xml:space="preserve">
<value>Tam istisna adı</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.ExceptionFilter.ColumnIsActive" xml:space="preserve">
<value>Hata ayıklayıcıyı duraklat</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.ExceptionFilterTitle" xml:space="preserve">
<value>Hata ayıklayıcının durmasını istediğiniz istisna tiplerini seçiniz</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Exceptions" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.Exceptions" xml:space="preserve">
<value>İstisnalar</value> <value>İstisnalar</value>
</data> </data>
@ -2467,6 +2518,9 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<data name="Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription" xml:space="preserve"> <data name="Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription" xml:space="preserve">
<value>Derlemenin oluşturulacağı dizini seçin.</value> <value>Derlemenin oluşturulacağı dizini seçin.</value>
</data> </data>
<data name="Dialog.Options.ServicesReferencesText" xml:space="preserve">
<value>Servis referansları</value>
</data>
<data name="Dialog.Options.TextEditorOptions.EditHighlighting.Title" xml:space="preserve"> <data name="Dialog.Options.TextEditorOptions.EditHighlighting.Title" xml:space="preserve">
<value>Vurgu</value> <value>Vurgu</value>
</data> </data>
@ -2662,6 +2716,12 @@ Yeni dosyayı, ${CurrentProjectName} projesine eklemek istiyor musunuz?</value>
<data name="Dialog.ProjectOptions.ContinueSwitchConfiguration" xml:space="preserve"> <data name="Dialog.ProjectOptions.ContinueSwitchConfiguration" xml:space="preserve">
<value>Yapılandırmayı değiştirmek mevcut değerleri kaydeder. Devam edilsin mi?</value> <value>Yapılandırmayı değiştirmek mevcut değerleri kaydeder. Devam edilsin mi?</value>
</data> </data>
<data name="Dialog.ProjectOptions.CustomTool.Filenames" xml:space="preserve">
<value>Dosya isimleri:</value>
</data>
<data name="Dialog.ProjectOptions.CustomTool.RunOnBuild" xml:space="preserve">
<value>Derledikten sonra çalıştır.</value>
</data>
<data name="Dialog.ProjectOptions.DebugOptions" xml:space="preserve"> <data name="Dialog.ProjectOptions.DebugOptions" xml:space="preserve">
<value>Hata Ayıkla</value> <value>Hata Ayıkla</value>
</data> </data>
@ -2839,6 +2899,9 @@ Ayrıca bir ayarı proje dosyası yerine kullanıcı dosyası(.user-file) içind
<data name="Dialog.Refactoring.IntroduceMethod.UseExisting" xml:space="preserve"> <data name="Dialog.Refactoring.IntroduceMethod.UseExisting" xml:space="preserve">
<value>Mevcut sınıfı kullan:</value> <value>Mevcut sınıfı kullan:</value>
</data> </data>
<data name="Dialog.SearchForIssues.AutoFix" xml:space="preserve">
<value>Mümkünse hataları otomatik olarak düzelt</value>
</data>
<data name="Dialog.SelectReferenceDialog.BrowserTabPage" xml:space="preserve"> <data name="Dialog.SelectReferenceDialog.BrowserTabPage" xml:space="preserve">
<value>.NET Derleme Tarayıcısı</value> <value>.NET Derleme Tarayıcısı</value>
</data> </data>
@ -3091,12 +3154,27 @@ Ayrıca bir ayarı proje dosyası yerine kullanıcı dosyası(.user-file) içind
<data name="Global.ReplaceButtonText" xml:space="preserve"> <data name="Global.ReplaceButtonText" xml:space="preserve">
<value>Değiştir</value> <value>Değiştir</value>
</data> </data>
<data name="Global.Reset" xml:space="preserve">
<value>Yeniden başlat</value>
</data>
<data name="Global.RetryButtonText" xml:space="preserve"> <data name="Global.RetryButtonText" xml:space="preserve">
<value>Yeniden Dene</value> <value>Yeniden Dene</value>
</data> </data>
<data name="Global.SelectAllButtonText" xml:space="preserve"> <data name="Global.SelectAllButtonText" xml:space="preserve">
<value>Hepsini Seç</value> <value>Hepsini Seç</value>
</data> </data>
<data name="Global.Shortcuts.Alt" xml:space="preserve">
<value>Alt</value>
</data>
<data name="Global.Shortcuts.Ctrl" xml:space="preserve">
<value>Ctrl</value>
</data>
<data name="Global.Shortcuts.Shift" xml:space="preserve">
<value>Shift</value>
</data>
<data name="Global.Shortcuts.Win" xml:space="preserve">
<value>Win</value>
</data>
<data name="Global.SmallIconToolTip" xml:space="preserve"> <data name="Global.SmallIconToolTip" xml:space="preserve">
<value>Küçük Simgeler</value> <value>Küçük Simgeler</value>
</data> </data>
@ -3633,6 +3711,9 @@ Lütfen SharpDevelop Seçeneklerinden NAnt çalıştırılabilir dosyasının ye
<data name="ICSharpCode.PythonBinding.UnknownTypeName" xml:space="preserve"> <data name="ICSharpCode.PythonBinding.UnknownTypeName" xml:space="preserve">
<value>'{0}' türü bulunamıyor. Bir derleme bilgisi eksik olabilir mi?</value> <value>'{0}' türü bulunamıyor. Bir derleme bilgisi eksik olabilir mi?</value>
</data> </data>
<data name="ICSharpCode.Refactoring.NoClassOrMemberUnderCursorError" xml:space="preserve">
<value>Kursorün bulunduğu pozisyonda tip tanımı veya tip üyesi bulunamadı</value>
</data>
<data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve"> <data name="ICSharpCode.Refactoring.NoClassOrOverridableSymbolUnderCursorError" xml:space="preserve">
<value>Seçilen eleman sınıfsız veya geçersiz bir üye, bu yüzden türetilmemiş semboller gösterilebilir.</value> <value>Seçilen eleman sınıfsız veya geçersiz bir üye, bu yüzden türetilmemiş semboller gösterilebilir.</value>
</data> </data>
@ -4936,6 +5017,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="MainWindow.CompilerMessages.BuildFinished" xml:space="preserve"> <data name="MainWindow.CompilerMessages.BuildFinished" xml:space="preserve">
<value>Derleme başarılı oldu.</value> <value>Derleme başarılı oldu.</value>
</data> </data>
<data name="MainWindow.CompilerMessages.BuildingProjectIsNotSupported" xml:space="preserve">
<value>${Name} projesinin derlenmesi desteklenmemektedir.</value>
</data>
<data name="MainWindow.CompilerMessages.BuildStarted" xml:space="preserve"> <data name="MainWindow.CompilerMessages.BuildStarted" xml:space="preserve">
<value>Derleme başladı.</value> <value>Derleme başladı.</value>
</data> </data>
@ -5197,6 +5281,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve"> <data name="MainWindow.Windows.Debug.ExceptionForm.Break" xml:space="preserve">
<value>Kesme</value> <value>Kesme</value>
</data> </data>
<data name="MainWindow.Windows.Debug.ExceptionForm.BreakOnHandled" xml:space="preserve">
<value>${ExceptionName} öngörülen istisna durumunda duraklat</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Continue" xml:space="preserve"> <data name="MainWindow.Windows.Debug.ExceptionForm.Continue" xml:space="preserve">
<value>Devam</value> <value>Devam</value>
</data> </data>
@ -5524,6 +5611,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.OutputWindow.DebugCategory" xml:space="preserve"> <data name="MainWindow.Windows.OutputWindow.DebugCategory" xml:space="preserve">
<value>Hata Ayıkla</value> <value>Hata Ayıkla</value>
</data> </data>
<data name="MainWindow.Windows.OutputWindow.TextTooLong" xml:space="preserve">
<value>Metin çok uzun olduğundan kısaltılmıştır.</value>
</data>
<data name="MainWindow.Windows.ProjectScoutLabel" xml:space="preserve"> <data name="MainWindow.Windows.ProjectScoutLabel" xml:space="preserve">
<value>Projeler</value> <value>Projeler</value>
</data> </data>
@ -5587,6 +5677,24 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.TaskList" xml:space="preserve"> <data name="MainWindow.Windows.TaskList" xml:space="preserve">
<value>Görev Listesi</value> <value>Görev Listesi</value>
</data> </data>
<data name="MainWindow.Windows.TaskList.AllOpenedFiles" xml:space="preserve">
<value>Açık olan tüm dosyalarda</value>
</data>
<data name="MainWindow.Windows.TaskList.CurrentClass" xml:space="preserve">
<value>Sınıf/Modül</value>
</data>
<data name="MainWindow.Windows.TaskList.CurrentFile" xml:space="preserve">
<value>Dosya</value>
</data>
<data name="MainWindow.Windows.TaskList.Namespace" xml:space="preserve">
<value>Ad alanı</value>
</data>
<data name="MainWindow.Windows.TaskList.Project" xml:space="preserve">
<value>Proje</value>
</data>
<data name="MainWindow.Windows.TaskList.Solution" xml:space="preserve">
<value>Çözüm</value>
</data>
<data name="MainWindow.Windows.ToolbarLabel" xml:space="preserve"> <data name="MainWindow.Windows.ToolbarLabel" xml:space="preserve">
<value>Araçlar</value> <value>Araçlar</value>
</data> </data>
@ -5998,15 +6106,27 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="ResourceEditor.BitmapView.UpdateBitmap" xml:space="preserve"> <data name="ResourceEditor.BitmapView.UpdateBitmap" xml:space="preserve">
<value>Resmi güncelle...</value> <value>Resmi güncelle...</value>
</data> </data>
<data name="ResourceEditor.BitmapView.UpdateCursor" xml:space="preserve">
<value>İmleci güncelle ...</value>
</data>
<data name="ResourceEditor.BitmapView.UpdateIcon" xml:space="preserve">
<value>İkonu güncelle ...</value>
</data>
<data name="ResourceEditor.DeleteEntry.Confirm" xml:space="preserve"> <data name="ResourceEditor.DeleteEntry.Confirm" xml:space="preserve">
<value>Seçili kaynağı silmek istediğinizden emin misiniz?</value> <value>Seçili kaynağı silmek istediğinizden emin misiniz?</value>
</data> </data>
<data name="ResourceEditor.DeleteEntry.Title" xml:space="preserve"> <data name="ResourceEditor.DeleteEntry.Title" xml:space="preserve">
<value>Kaynağı sil</value> <value>Kaynağı sil</value>
</data> </data>
<data name="ResourceEditor.Filter" xml:space="preserve">
<value>Filtre:</value>
</data>
<data name="ResourceEditor.Messages.CantLoadResource" xml:space="preserve"> <data name="ResourceEditor.Messages.CantLoadResource" xml:space="preserve">
<value>Kaynak yüklenemiyor</value> <value>Kaynak yüklenemiyor</value>
</data> </data>
<data name="ResourceEditor.Messages.CantLoadResourceFromFile" xml:space="preserve">
<value>Kaynak dosyadan {0} yüklenemedi.</value>
</data>
<data name="ResourceEditor.ResourceCodeGeneratorTool.ClassConflict" xml:space="preserve"> <data name="ResourceEditor.ResourceCodeGeneratorTool.ClassConflict" xml:space="preserve">
<value>Hata: Kaynak kodu üreteci "{0}" kaynak dosyasını atladı, çünkü oluşturulan sınıf mevcut sınıf "{1}" ile çakışıyor.</value> <value>Hata: Kaynak kodu üreteci "{0}" kaynak dosyasını atladı, çünkü oluşturulan sınıf mevcut sınıf "{1}" ile çakışıyor.</value>
</data> </data>
@ -6019,6 +6139,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve"> <data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>İçerik</value> <value>İçerik</value>
</data> </data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.AddBooleanEntry" xml:space="preserve">
<value>Boolean giriş &amp; ekle</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.AddFiles" xml:space="preserve"> <data name="ResourceEditor.ResourceEdit.ContextMenu.AddFiles" xml:space="preserve">
<value>Dosyaları ekle...</value> <value>Dosyaları ekle...</value>
</data> </data>
@ -6139,6 +6262,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="SharpDevelop.Refactoring.BaseClassesOf" xml:space="preserve"> <data name="SharpDevelop.Refactoring.BaseClassesOf" xml:space="preserve">
<value>${Name} Temel sınıfları</value> <value>${Name} Temel sınıfları</value>
</data> </data>
<data name="SharpDevelop.Refactoring.BaseMembersOf" xml:space="preserve">
<value>${Name} temel üyesidir</value>
</data>
<data name="SharpDevelop.Refactoring.CannotPerformOperationBecauseOfSyntaxErrors" xml:space="preserve"> <data name="SharpDevelop.Refactoring.CannotPerformOperationBecauseOfSyntaxErrors" xml:space="preserve">
<value>Bu işlem yerine getirilemez çünkü kaynak kodlarınızda hata var:</value> <value>Bu işlem yerine getirilemez çünkü kaynak kodlarınızda hata var:</value>
</data> </data>
@ -6187,6 +6313,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFXCompiler, WixNetFxExtension<
<data name="SharpDevelop.Refactoring.FindBaseClassesCommand" xml:space="preserve"> <data name="SharpDevelop.Refactoring.FindBaseClassesCommand" xml:space="preserve">
<value>Temel sınıfları bul</value> <value>Temel sınıfları bul</value>
</data> </data>
<data name="SharpDevelop.Refactoring.FindBaseClassesOrMembersCommand" xml:space="preserve">
<value>Temel semboleri bul</value>
</data>
<data name="SharpDevelop.Refactoring.FindDerivedClassesCommand" xml:space="preserve"> <data name="SharpDevelop.Refactoring.FindDerivedClassesCommand" xml:space="preserve">
<value>Türetilmiş sınıfları bul</value> <value>Türetilmiş sınıfları bul</value>
</data> </data>
@ -6491,6 +6620,9 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="SharpReport.Wizard.BaseSettings,ReportType" xml:space="preserve"> <data name="SharpReport.Wizard.BaseSettings,ReportType" xml:space="preserve">
<value>Rapor Türü</value> <value>Rapor Türü</value>
</data> </data>
<data name="SharpReport.Wizard.BaseSettings.Description" xml:space="preserve">
<value>Temel rapor ayarları</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.FileName" xml:space="preserve"> <data name="SharpReport.Wizard.BaseSettings.FileName" xml:space="preserve">
<value>Dosya Adı</value> <value>Dosya Adı</value>
</data> </data>
@ -6530,6 +6662,9 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve"> <data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Tablo Düzeni</value> <value>Tablo Düzeni</value>
</data> </data>
<data name="SharpReport.Wizard.PageLayout" xml:space="preserve">
<value>Sayfa düzeni</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve"> <data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Veri Modeli Çek</value> <value>Veri Modeli Çek</value>
</data> </data>
@ -6545,9 +6680,18 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="SharpReport.Wizard.PushModel.AvailableFields" xml:space="preserve"> <data name="SharpReport.Wizard.PushModel.AvailableFields" xml:space="preserve">
<value>Mevcut Alanlar</value> <value>Mevcut Alanlar</value>
</data> </data>
<data name="SharpReport.Wizard.PushModel.NoProject" xml:space="preserve">
<value>Proje seçili değildir,lütfen alan adlarını giriniz</value>
</data>
<data name="SharpReport.Wizard.PushModel.SelectProject" xml:space="preserve">
<value>Seçili projedeki sınıflar</value>
</data>
<data name="SharpReport.Wizard.ShowQueryResult" xml:space="preserve"> <data name="SharpReport.Wizard.ShowQueryResult" xml:space="preserve">
<value>Sorgu Sonucunu Göster</value> <value>Sorgu Sonucunu Göster</value>
</data> </data>
<data name="SharpReport.Wizard.Welcome" xml:space="preserve">
<value>SharpReport sihirbazına hoşgeldiniz</value>
</data>
<data name="SideBarComponent.ContextMenu.AddTab" xml:space="preserve"> <data name="SideBarComponent.ContextMenu.AddTab" xml:space="preserve">
<value>Sekme Ekle</value> <value>Sekme Ekle</value>
</data> </data>
@ -7658,6 +7802,9 @@ Kaynak dosyaları buna göre yeniden adlandırıldı/taşındı.</value>
<data name="XML.MainMenu.SearchMenu.ReverseIncrementalSearch" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.ReverseIncrementalSearch" xml:space="preserve">
<value>Artan Aramayı Geri Al</value> <value>Artan Aramayı Geri Al</value>
</data> </data>
<data name="XML.MainMenu.SearchMenu.SearchForIssues" xml:space="preserve">
<value>Sorunları araştır...</value>
</data>
<data name="XML.MainMenu.SearchMenu.ToggleBookmark" xml:space="preserve"> <data name="XML.MainMenu.SearchMenu.ToggleBookmark" xml:space="preserve">
<value>Yer imlerini ters çevir</value> <value>Yer imlerini ters çevir</value>
</data> </data>
@ -7773,6 +7920,9 @@ Başlatma hatası:</value>
<data name="XML.TextAreaContextMenu.Refactoring" xml:space="preserve"> <data name="XML.TextAreaContextMenu.Refactoring" xml:space="preserve">
<value>Yeniden Düzenleme</value> <value>Yeniden Düzenleme</value>
</data> </data>
<data name="XML.TextAreaContextMenu.Reformat" xml:space="preserve">
<value>Tekrar formatla</value>
</data>
<data name="XML.TextAreaContextMenu.UncommentSelection" xml:space="preserve"> <data name="XML.TextAreaContextMenu.UncommentSelection" xml:space="preserve">
<value>Bölgeyi yorumlama</value> <value>Bölgeyi yorumlama</value>
</data> </data>

3
src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj

@ -44,6 +44,9 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="..\..\..\Main\Base\Project\Util\DotnetDetection.cs">
<Link>DotnetDetection.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DebuggerTestsBase.cs" /> <Compile Include="DebuggerTestsBase.cs" />
<Compile Include="Tests\AppDomain_Tests.cs" /> <Compile Include="Tests\AppDomain_Tests.cs" />

13
src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs

@ -28,6 +28,7 @@ using System.Security.Cryptography;
using System.Text; using System.Text;
using System.Xml; using System.Xml;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop;
using Microsoft.CSharp; using Microsoft.CSharp;
using NUnit.Framework; using NUnit.Framework;
@ -209,6 +210,10 @@ namespace Debugger.Tests
void StartTest(string testName, bool wait) void StartTest(string testName, bool wait)
{ {
if (!IsRuntimeCompatible()) {
Assert.Ignore();
return;
}
this.testName = testName; this.testName = testName;
string exeFilename = CompileTest(testName); string exeFilename = CompileTest(testName);
@ -595,5 +600,13 @@ namespace Debugger.Tests
// (see https://github.com/icsharpcode/SharpDevelop/issues/581) // (see https://github.com/icsharpcode/SharpDevelop/issues/581)
return true; return true;
} }
/// <summary>
/// Debugger Tests currently require .NET 4.6
/// </summary>
protected static bool IsRuntimeCompatible()
{
return DotnetDetection.IsDotnet46Installed();
}
} }
} }

1
src/AddIns/Debugger/Debugger.Tests/Tests/Breakpoint_Tests.cs

@ -92,6 +92,7 @@ namespace Debugger.Tests {
Line="30" /> Line="30" />
</Breakpoint2> </Breakpoint2>
<ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Core.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded>
<LogMessage>Main 1\r\n</LogMessage> <LogMessage>Main 1\r\n</LogMessage>
<Paused>Breakpoint_Tests.cs:29,4-29,49</Paused> <Paused>Breakpoint_Tests.cs:29,4-29,49</Paused>

1
src/AddIns/Debugger/Debugger.Tests/Tests/Process_MemoryReadWrite.cs

@ -88,6 +88,7 @@ namespace Debugger.Tests {
<hello>5 0 0 0 48 0 65 0 6C 0 6C 0 6F 0 </hello> <hello>5 0 0 0 48 0 65 0 6C 0 6C 0 6F 0 </hello>
<world>6 0 0 0 20 0 20 0 20 0 20 0 20 0 21 0 </world> <world>6 0 0 0 20 0 20 0 20 0 20 0 20 0 21 0 </world>
<ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Core.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded>
<LogMessage>Hello world!\r\n</LogMessage> <LogMessage>Hello world!\r\n</LogMessage>
<Exited /> <Exited />

1
src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_SetIP.cs

@ -65,6 +65,7 @@ namespace Debugger.Tests {
<ModuleLoaded>StackFrame_SetIP.exe (Has symbols)</ModuleLoaded> <ModuleLoaded>StackFrame_SetIP.exe (Has symbols)</ModuleLoaded>
<ModuleLoaded>System.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Core.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded>
<LogMessage>1\r\n</LogMessage> <LogMessage>1\r\n</LogMessage>
<Paused>StackFrame_SetIP.cs:28,4-28,40</Paused> <Paused>StackFrame_SetIP.cs:28,4-28,40</Paused>

3
src/AddIns/Debugger/Debugger.Tests/Tests/_HelloWorldTest.cs

@ -38,6 +38,8 @@ namespace Debugger.Tests {
[NUnit.Framework.Test] [NUnit.Framework.Test]
public void _HelloWorldTest() public void _HelloWorldTest()
{ {
if (!IsRuntimeCompatible())
NUnit.Framework.Assert.Ignore();
StartTest(); StartTest();
EndTest(); EndTest();
@ -56,6 +58,7 @@ namespace Debugger.Tests {
<ModuleLoaded>_HelloWorldTest.exe (Has symbols)</ModuleLoaded> <ModuleLoaded>_HelloWorldTest.exe (Has symbols)</ModuleLoaded>
<ModuleLoaded>System.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Configuration.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Core.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded> <ModuleLoaded>System.Xml.dll (No symbols)</ModuleLoaded>
<LogMessage>Hello world!\r\n</LogMessage> <LogMessage>Hello world!\r\n</LogMessage>
<Paused>_HelloWorldTest.cs:29,4-29,40</Paused> <Paused>_HelloWorldTest.cs:29,4-29,40</Paused>

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

@ -204,5 +204,10 @@ namespace ICSharpCode.AddInManager2.Tests.Fakes
} }
public bool DevelopmentDependency { get; set; } public bool DevelopmentDependency { get; set; }
public void ExtractContents(IFileSystem fileSystem, string extractPath)
{
throw new NotImplementedException();
}
} }
} }

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

@ -62,6 +62,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets
[Parameter] [Parameter]
public FileConflictAction FileConflictAction { get; set; } public FileConflictAction FileConflictAction { get; set; }
[Parameter]
public DependencyVersion? DependencyVersion { get; set; }
protected override void ProcessRecord() protected override void ProcessRecord()
{ {
ThrowErrorIfProjectNotOpen(); ThrowErrorIfProjectNotOpen();
@ -99,6 +102,9 @@ namespace ICSharpCode.PackageManagement.Cmdlets
action.IgnoreDependencies = IgnoreDependencies.IsPresent; action.IgnoreDependencies = IgnoreDependencies.IsPresent;
action.AllowPrereleaseVersions = IncludePrerelease.IsPresent; action.AllowPrereleaseVersions = IncludePrerelease.IsPresent;
action.PackageScriptRunner = this; action.PackageScriptRunner = this;
if (DependencyVersion.HasValue) {
action.DependencyVersion = DependencyVersion.Value;
}
return action; return action;
} }
} }

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

@ -69,6 +69,10 @@ namespace ICSharpCode.PackageManagement.Cmdlets
[Parameter] [Parameter]
public FileConflictAction FileConflictAction { get; set; } public FileConflictAction FileConflictAction { get; set; }
[Parameter(Mandatory = true, ParameterSetName = "Reinstall")]
[Parameter(ParameterSetName = "All")]
public SwitchParameter Reinstall { get; set; }
protected override void ProcessRecord() protected override void ProcessRecord()
{ {
ThrowErrorIfProjectNotOpen(); ThrowErrorIfProjectNotOpen();
@ -88,15 +92,31 @@ namespace ICSharpCode.PackageManagement.Cmdlets
{ {
if (HasPackageId()) { if (HasPackageId()) {
if (HasProjectName()) { if (HasProjectName()) {
UpdatePackageInSingleProject(); if (Reinstall) {
ReinstallPackageInSingleProject();
} else {
UpdatePackageInSingleProject();
}
} else { } else {
UpdatePackageInAllProjects(); if (Reinstall) {
ReinstallPackageInAllProjects();
} else {
UpdatePackageInAllProjects();
}
} }
} else { } else {
if (HasProjectName()) { if (HasProjectName()) {
UpdateAllPackagesInProject(); if (Reinstall) {
ReinstallAllPackagesInProject();
} else {
UpdateAllPackagesInProject();
}
} else { } else {
UpdateAllPackagesInSolution(); if (Reinstall) {
ReinstallAllPackagesInSolution();
} else {
UpdateAllPackagesInSolution();
}
} }
} }
} }
@ -208,5 +228,93 @@ namespace ICSharpCode.PackageManagement.Cmdlets
{ {
return new PackageReference(Id, Version, null, null, false, false); return new PackageReference(Id, Version, null, null, false, false);
} }
void ReinstallPackageInSingleProject()
{
IPackageManagementProject project = GetProject();
IPackage package = FindPackageOrThrow(project);
ReinstallPackageInProject(project, package);
}
IPackage FindPackageOrThrow(IPackageManagementProject project)
{
IPackage package = project.FindPackage(Id, null);
if (package != null) {
return package;
}
throw CreatePackageNotFoundException(Id);
}
static InvalidOperationException CreatePackageNotFoundException(string packageId)
{
string message = String.Format("Unable to find package '{0}'.", packageId);
throw new InvalidOperationException(message);
}
void ReinstallPackageInProject(IPackageManagementProject project, IPackage package)
{
ReinstallPackageAction action = CreateReinstallPackageAction(project, package);
using (IDisposable operation = StartReinstallOperation(action)) {
action.Execute();
}
}
IDisposable StartReinstallOperation(ReinstallPackageAction action)
{
return action.Project.SourceRepository.StartReinstallOperation(action.PackageId);
}
ReinstallPackageAction CreateReinstallPackageAction(IPackageManagementProject project, IPackage package)
{
ReinstallPackageAction action = project.CreateReinstallPackageAction();
action.PackageId = package.Id;
action.PackageVersion = package.Version;
action.UpdateDependencies = UpdateDependencies;
action.AllowPrereleaseVersions = AllowPreleaseVersions || !package.IsReleaseVersion();
action.PackageScriptRunner = this;
return action;
}
void ReinstallAllPackagesInProject()
{
ReinstallAllPackagesInProject(GetProject());
}
void ReinstallAllPackagesInProject(IPackageManagementProject project)
{
// No need to update dependencies since all packages will be reinstalled.
IgnoreDependencies = true;
foreach (IPackage package in project.GetPackages()) {
ReinstallPackageInProject(project, package);
}
}
void ReinstallPackageInAllProjects()
{
bool foundPackage = false;
IPackageRepository repository = GetActivePackageRepository();
foreach (IPackageManagementProject project in ConsoleHost.Solution.GetProjects(repository)) {
IPackage package = project.FindPackage(Id, null);
if (package != null) {
foundPackage = true;
ReinstallPackageInProject(project, package);
}
}
if (!foundPackage) {
throw CreatePackageNotFoundException(Id);
}
}
void ReinstallAllPackagesInSolution()
{
IPackageRepository repository = GetActivePackageRepository();
foreach (IPackageManagementProject project in ConsoleHost.Solution.GetProjects(repository)) {
ReinstallAllPackagesInProject(project);
}
}
} }
} }

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

@ -335,5 +335,28 @@ namespace PackageManagement.Cmdlets.Tests
fakeConsoleHost.AssertLoggerIsDisposed(); fakeConsoleHost.AssertLoggerIsDisposed();
Assert.AreEqual(cmdlet, fakeConsoleHost.CmdletLoggerUsedToCreateLogger); Assert.AreEqual(cmdlet, fakeConsoleHost.CmdletLoggerUsedToCreateLogger);
} }
[Test]
public void ProcessRecord_DependencyVersionSetToHighest_DependencyVersionUsedWhenInstallingPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
cmdlet.DependencyVersion = DependencyVersion.Highest;
RunCmdlet();
DependencyVersion actualDependencyVersion = fakeProject.LastInstallPackageCreated.DependencyVersion;
Assert.AreEqual(DependencyVersion.Highest, actualDependencyVersion);
}
[Test]
public void ProcessRecord_DependencyVersionNotSett_DependencyVersionSetToLowestWhenInstallingPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
RunCmdlet();
DependencyVersion actualDependencyVersion = fakeProject.LastInstallPackageCreated.DependencyVersion;
Assert.AreEqual(DependencyVersion.Lowest, actualDependencyVersion);
}
} }
} }

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

@ -17,6 +17,8 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation; using System.Management.Automation;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
@ -179,6 +181,26 @@ namespace PackageManagement.Cmdlets.Tests
return action; return action;
} }
FakeReinstallPackageAction ReinstallPackageInSingleProjectAction {
get { return fakeProject.FakeReinstallPackageActionsCreated.First(); }
}
List<FakeReinstallPackageAction> ReinstallPackageActionsCreated {
get { return fakeProject.FakeReinstallPackageActionsCreated; }
}
FakePackage ProjectHasPackageInstalled(string packageId, string version)
{
return ProjectHasPackageInstalled(fakeProject, packageId, version);
}
static FakePackage ProjectHasPackageInstalled(FakePackageManagementProject project, string packageId, string version)
{
FakePackage package = project.FakeLocalRepository.AddFakePackageWithVersion(packageId, version);
project.FakePackages.Add(package);
return package;
}
[Test] [Test]
public void ProcessRecord_NoActiveProject_ThrowsNoProjectOpenTerminatingError() public void ProcessRecord_NoActiveProject_ThrowsNoProjectOpenTerminatingError()
{ {
@ -846,5 +868,296 @@ namespace PackageManagement.Cmdlets.Tests
fakeConsoleHost.AssertLoggerIsDisposed(); fakeConsoleHost.AssertLoggerIsDisposed();
Assert.AreEqual(cmdlet, fakeConsoleHost.CmdletLoggerUsedToCreateLogger); Assert.AreEqual(cmdlet, fakeConsoleHost.CmdletLoggerUsedToCreateLogger);
} }
[Test]
public void ProcessRecord_ReinstallWhenPackageIdAndProjectNameSpecified_ReinstallPackageActionIsExecuted()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("Test");
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
FakePackage testPackage = fakeProject.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.2.3");
RunCmdlet();
Assert.IsTrue(ReinstallPackageInSingleProjectAction.IsExecuted);
Assert.AreEqual(cmdlet, ReinstallPackageInSingleProjectAction.PackageScriptRunner);
Assert.AreEqual("Test", ReinstallPackageInSingleProjectAction.PackageId);
Assert.AreEqual(testPackage.Version, ReinstallPackageInSingleProjectAction.PackageVersion);
Assert.IsFalse(ReinstallPackageInSingleProjectAction.AllowPrereleaseVersions);
Assert.IsTrue(ReinstallPackageInSingleProjectAction.UpdateDependencies);
}
[Test]
public void ProcessRecord_ReinstallPackageIdIntoProjectWhenPackageIdNotFound_ExceptionThrownAboutMissingPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("UnknownPackageId");
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
FakePackage testPackage = fakeProject.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.2.3");
var ex = Assert.Throws<InvalidOperationException>(RunCmdlet);
Assert.AreEqual("Unable to find package 'UnknownPackageId'.", ex.Message);
}
[Test]
public void ProcessRecord_ReinstallWhenPackageIdAndProjectNameSpecifiedAndSourceRepositoryIsOperationAware_ReinstallOperationStartedAndDisposedForPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("Test");
SetProjectNameParameter("MyProject");
fakeProject.FakeLocalRepository.AddFakePackage("Test");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakeProject.FakeSourceRepository = operationAwareRepository;
cmdlet.Reinstall = true;
RunCmdlet();
operationAwareRepository.AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "Test");
}
[Test]
public void ProcessRecord_ReinstallWhenPackageIdAndProjectNameSpecifiedAndIncludePrerelease_PrereleasesAllowedForReinstall()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("Test");
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
cmdlet.IncludePrerelease = true;
fakeProject.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.2.3");
RunCmdlet();
Assert.IsTrue(ReinstallPackageInSingleProjectAction.IsExecuted);
Assert.IsTrue(ReinstallPackageInSingleProjectAction.AllowPrereleaseVersions);
}
[Test]
public void ProcessRecord_ReinstallWhenPackageIdAndProjectNameSpecifiedAndLocalPackageIsPrerelease_PrereleasesAllowedForReinstall()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("Test");
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
cmdlet.IncludePrerelease = false;
fakeProject.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.2.3-alpha1");
RunCmdlet();
Assert.IsTrue(ReinstallPackageInSingleProjectAction.IsExecuted);
Assert.IsTrue(ReinstallPackageInSingleProjectAction.AllowPrereleaseVersions);
}
[Test]
public void ProcessRecord_ReinstallWhenPackageIdAndProjectNameSpecifiedAndIgnoreDependenciesIsTrue_DoNotUpdateDepenenciesOnReinstall()
{
CreateCmdletWithActivePackageSourceAndProject();
SetIdParameter("Test");
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
cmdlet.IgnoreDependencies = true;
fakeProject.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.2.3");
RunCmdlet();
Assert.IsTrue(ReinstallPackageInSingleProjectAction.IsExecuted);
Assert.IsFalse(ReinstallPackageInSingleProjectAction.UpdateDependencies);
}
[Test]
public void ProcessRecord_ReinstallAllPackagesInProjectWithTwoPackages_BothPackagesReinstalled()
{
CreateCmdletWithActivePackageSourceAndProject();
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
cmdlet.IgnoreDependencies = false;
FakePackage packageA = ProjectHasPackageInstalled("PackageA", "1.1");
FakePackage packageB = ProjectHasPackageInstalled("PackageB", "1.2");
RunCmdlet();
Assert.AreEqual(2, ReinstallPackageActionsCreated.Count);
Assert.IsTrue(ReinstallPackageActionsCreated[0].IsExecuted);
Assert.IsTrue(ReinstallPackageActionsCreated[1].IsExecuted);
Assert.AreEqual(cmdlet, ReinstallPackageActionsCreated[0].PackageScriptRunner);
Assert.AreEqual(cmdlet, ReinstallPackageActionsCreated[1].PackageScriptRunner);
Assert.AreEqual("PackageA", ReinstallPackageActionsCreated[0].PackageId);
Assert.AreEqual("PackageB", ReinstallPackageActionsCreated[1].PackageId);
Assert.AreEqual(packageA.Version, ReinstallPackageActionsCreated[0].PackageVersion);
Assert.AreEqual(packageB.Version, ReinstallPackageActionsCreated[1].PackageVersion);
Assert.IsFalse(ReinstallPackageActionsCreated[0].AllowPrereleaseVersions);
Assert.IsFalse(ReinstallPackageActionsCreated[1].AllowPrereleaseVersions);
Assert.IsFalse(ReinstallPackageActionsCreated[0].UpdateDependencies);
Assert.IsFalse(ReinstallPackageActionsCreated[1].UpdateDependencies);
}
[Test]
public void ProcessRecord_ReinstallAllPackagesInProjectWhenSourceRepositoryIsOperationAware_ReinstallOperationStartedAndDisposedForEachPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
SetProjectNameParameter("MyProject");
cmdlet.Reinstall = true;
ProjectHasPackageInstalled("PackageA", "1.1");
ProjectHasPackageInstalled("PackageB", "1.2");
var operationAwareRepository = new FakeOperationAwarePackageRepository();
fakeProject.FakeSourceRepository = operationAwareRepository;
cmdlet.Reinstall = true;
RunCmdlet();
Assert.AreEqual(2, operationAwareRepository.OperationsStarted.Count);
operationAwareRepository.OperationsStarted[0].AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "PackageA");
operationAwareRepository.OperationsStarted[1].AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "PackageB");
}
[Test]
public void ProcessRecord_ReinstallPackageInAllProjectsWhenThreeProjectsButOnlyTwoHavePackage_PackageIsReinstalledInProjects()
{
CreateCmdletWithActivePackageSourceAndProject();
AddPackageSourceToConsoleHost();
SetSourceParameter("Test");
SetIdParameter("B");
cmdlet.Reinstall = true;
cmdlet.IgnoreDependencies = false;
FakePackageManagementProject project1 = fakeSolution.AddFakeProject("Project1");
FakePackageManagementProject project2 = fakeSolution.AddFakeProject("Project2");
FakePackageManagementProject project3 = fakeSolution.AddFakeProject("Project3");
ProjectHasPackageInstalled(project1, "A", "1.1");
ProjectHasPackageInstalled(project1, "B", "1.2");
ProjectHasPackageInstalled(project3, "A", "1.1");
ProjectHasPackageInstalled(project3, "B", "1.3");
RunCmdlet();
FakeReinstallPackageAction project1ReinstallAction = project1.FakeReinstallPackageActionsCreated.Single();
FakeReinstallPackageAction project3ReinstallAction = project3.FakeReinstallPackageActionsCreated.Single();
Assert.AreEqual(0, project2.FakeReinstallPackageActionsCreated.Count);
Assert.IsTrue(project1ReinstallAction.IsExecuted);
Assert.IsTrue(project3ReinstallAction.IsExecuted);
Assert.AreEqual(project1, project1ReinstallAction.Project);
Assert.AreEqual(project3, project3ReinstallAction.Project);
Assert.AreEqual(cmdlet, project1ReinstallAction.PackageScriptRunner);
Assert.AreEqual(cmdlet, project3ReinstallAction.PackageScriptRunner);
Assert.AreEqual("B", project1ReinstallAction.PackageId);
Assert.AreEqual("B", project3ReinstallAction.PackageId);
Assert.AreEqual("1.2", project1ReinstallAction.PackageVersion.ToString());
Assert.AreEqual("1.3", project3ReinstallAction.PackageVersion.ToString());
Assert.IsFalse(project1ReinstallAction.AllowPrereleaseVersions);
Assert.IsFalse(project3ReinstallAction.AllowPrereleaseVersions);
Assert.IsTrue(project1ReinstallAction.UpdateDependencies);
Assert.IsTrue(project3ReinstallAction.UpdateDependencies);
Assert.AreEqual("Test", fakeConsoleHost.PackageSourcePassedToGetActivePackageSource);
Assert.AreEqual(fakeConsoleHost.FakePackageRepository, fakeSolution.SourceRepositoryPassedToGetProjects);
}
[Test]
public void ProcessRecord_ReinstallPackageInAllProjects_ReinstallOperationStartedAndDisposedForEachPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
AddPackageSourceToConsoleHost();
SetSourceParameter("Test");
SetIdParameter("B");
cmdlet.Reinstall = true;
cmdlet.IgnoreDependencies = false;
FakePackageManagementProject project1 = fakeSolution.AddFakeProject("Project1");
FakePackageManagementProject project2 = fakeSolution.AddFakeProject("Project2");
ProjectHasPackageInstalled(project1, "A", "1.1");
ProjectHasPackageInstalled(project1, "B", "1.2");
ProjectHasPackageInstalled(project2, "A", "1.1");
ProjectHasPackageInstalled(project2, "B", "1.3");
var operationAwareRepository1 = new FakeOperationAwarePackageRepository();
project1.FakeSourceRepository = operationAwareRepository1;
var operationAwareRepository2 = new FakeOperationAwarePackageRepository();
project2.FakeSourceRepository = operationAwareRepository2;
RunCmdlet();
operationAwareRepository1.OperationsStarted.Single().AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "B");
operationAwareRepository2.OperationsStarted.Single().AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "B");
}
[Test]
public void ProcessRecord_ReinstallPackageInAllProjectsButPackageNotFound_ExceptionThrown()
{
CreateCmdletWithActivePackageSourceAndProject();
AddPackageSourceToConsoleHost();
SetSourceParameter("Test");
SetIdParameter("UnknownPackageId");
cmdlet.Reinstall = true;
FakePackageManagementProject project1 = fakeSolution.AddFakeProject("Project1");
FakePackageManagementProject project2 = fakeSolution.AddFakeProject("Project2");
FakePackageManagementProject project3 = fakeSolution.AddFakeProject("Project3");
var ex = Assert.Throws<InvalidOperationException>(RunCmdlet);
Assert.AreEqual("Unable to find package 'UnknownPackageId'.", ex.Message);
}
[Test]
public void ProcessRecord_ReinstallAllPackagesInAllProjects_PackagesAreReinstalledInAllProjects()
{
CreateCmdletWithActivePackageSourceAndProject();
AddPackageSourceToConsoleHost();
SetSourceParameter("Test");
cmdlet.Reinstall = true;
cmdlet.IgnoreDependencies = false;
FakePackageManagementProject project1 = fakeSolution.AddFakeProject("Project1");
FakePackageManagementProject project2 = fakeSolution.AddFakeProject("Project2");
ProjectHasPackageInstalled(project1, "A", "1.1");
ProjectHasPackageInstalled(project1, "B", "1.2");
ProjectHasPackageInstalled(project2, "A", "1.4");
RunCmdlet();
FakeReinstallPackageAction project2ReinstallAction = project2.FakeReinstallPackageActionsCreated.Single();
Assert.AreEqual(2, project1.FakeReinstallPackageActionsCreated.Count);
Assert.IsTrue(project1.FakeReinstallPackageActionsCreated[0].IsExecuted);
Assert.IsTrue(project1.FakeReinstallPackageActionsCreated[1].IsExecuted);
Assert.IsTrue(project2ReinstallAction.IsExecuted);
Assert.AreEqual(project1, project1.FakeReinstallPackageActionsCreated[0].Project);
Assert.AreEqual(project1, project1.FakeReinstallPackageActionsCreated[1].Project);
Assert.AreEqual(project2, project2ReinstallAction.Project);
Assert.AreEqual(cmdlet, project1.FakeReinstallPackageActionsCreated[0].PackageScriptRunner);
Assert.AreEqual(cmdlet, project1.FakeReinstallPackageActionsCreated[1].PackageScriptRunner);
Assert.AreEqual(cmdlet, project2ReinstallAction.PackageScriptRunner);
Assert.AreEqual("A", project1.FakeReinstallPackageActionsCreated[0].PackageId);
Assert.AreEqual("B", project1.FakeReinstallPackageActionsCreated[1].PackageId);
Assert.AreEqual("A", project2ReinstallAction.PackageId);
Assert.AreEqual("1.1", project1.FakeReinstallPackageActionsCreated[0].PackageVersion.ToString());
Assert.AreEqual("1.2", project1.FakeReinstallPackageActionsCreated[1].PackageVersion.ToString());
Assert.AreEqual("1.4", project2ReinstallAction.PackageVersion.ToString());
Assert.IsFalse(project1.FakeReinstallPackageActionsCreated[0].AllowPrereleaseVersions);
Assert.IsFalse(project1.FakeReinstallPackageActionsCreated[1].AllowPrereleaseVersions);
Assert.IsFalse(project2ReinstallAction.AllowPrereleaseVersions);
Assert.IsFalse(project1.FakeReinstallPackageActionsCreated[0].UpdateDependencies);
Assert.IsFalse(project1.FakeReinstallPackageActionsCreated[1].UpdateDependencies);
Assert.IsFalse(project2ReinstallAction.UpdateDependencies);
Assert.AreEqual("Test", fakeConsoleHost.PackageSourcePassedToGetActivePackageSource);
Assert.AreEqual(fakeConsoleHost.FakePackageRepository, fakeSolution.SourceRepositoryPassedToGetProjects);
}
[Test]
public void ProcessRecord_ReinstallAllPackagesInAllProjects_ReinstallOperationStartedAndDisposedForEachPackage()
{
CreateCmdletWithActivePackageSourceAndProject();
AddPackageSourceToConsoleHost();
SetSourceParameter("Test");
cmdlet.Reinstall = true;
FakePackageManagementProject project1 = fakeSolution.AddFakeProject("Project1");
FakePackageManagementProject project2 = fakeSolution.AddFakeProject("Project2");
ProjectHasPackageInstalled(project1, "B", "1.2");
ProjectHasPackageInstalled(project2, "B", "1.3");
var operationAwareRepository1 = new FakeOperationAwarePackageRepository();
project1.FakeSourceRepository = operationAwareRepository1;
var operationAwareRepository2 = new FakeOperationAwarePackageRepository();
project2.FakeSourceRepository = operationAwareRepository2;
RunCmdlet();
operationAwareRepository1.OperationsStarted.Single().AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "B");
operationAwareRepository2.OperationsStarted.Single().AssertOperationWasStartedAndDisposed(RepositoryOperationNames.Reinstall, "B");
}
} }
} }

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

@ -87,6 +87,7 @@
<Compile Include="Src\Design\DesignTimeSelectProjectsViewModel.cs" /> <Compile Include="Src\Design\DesignTimeSelectProjectsViewModel.cs" />
<Compile Include="Src\Design\FakePackageOperation.cs" /> <Compile Include="Src\Design\FakePackageOperation.cs" />
<Compile Include="Src\Design\FakeProjectBuilder.cs" /> <Compile Include="Src\Design\FakeProjectBuilder.cs" />
<Compile Include="Src\Design\FakeReinstallPackageAction.cs" />
<Compile Include="Src\Design\FakeSelectedProject.cs" /> <Compile Include="Src\Design\FakeSelectedProject.cs" />
<Compile Include="Src\DocumentLoader.cs" /> <Compile Include="Src\DocumentLoader.cs" />
<Compile Include="Src\DocumentView.cs" /> <Compile Include="Src\DocumentView.cs" />
@ -231,6 +232,7 @@
<Compile Include="Src\NoPackageSourcesConfiguredException.cs" /> <Compile Include="Src\NoPackageSourcesConfiguredException.cs" />
<Compile Include="Src\NuGetExePath.cs" /> <Compile Include="Src\NuGetExePath.cs" />
<Compile Include="Src\NuGetPackageRestoreCommandLine.cs" /> <Compile Include="Src\NuGetPackageRestoreCommandLine.cs" />
<Compile Include="Src\NullOpenPackageReadmeMonitor.cs" />
<Compile Include="Src\OpenPackageReadMeMonitor.cs" /> <Compile Include="Src\OpenPackageReadMeMonitor.cs" />
<Compile Include="Src\PackageLicenseViewModel.cs" /> <Compile Include="Src\PackageLicenseViewModel.cs" />
<Compile Include="Src\PackageManagementServiceProvider.cs" /> <Compile Include="Src\PackageManagementServiceProvider.cs" />
@ -241,6 +243,7 @@
<Compile Include="Src\ProjectBuilder.cs" /> <Compile Include="Src\ProjectBuilder.cs" />
<Compile Include="Src\ProjectRootElementExtensions.cs" /> <Compile Include="Src\ProjectRootElementExtensions.cs" />
<Compile Include="Src\ReducedPackageOperations.cs" /> <Compile Include="Src\ReducedPackageOperations.cs" />
<Compile Include="Src\ReinstallPackageAction.cs" />
<Compile Include="Src\RemovedPackageReferenceMonitor.cs" /> <Compile Include="Src\RemovedPackageReferenceMonitor.cs" />
<Compile Include="Src\ResolveFileConflictEventArgs.cs" /> <Compile Include="Src\ResolveFileConflictEventArgs.cs" />
<Compile Include="Src\RestorePackagesCommand.cs" /> <Compile Include="Src\RestorePackagesCommand.cs" />

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

@ -213,5 +213,14 @@ namespace ICSharpCode.PackageManagement.Design
public Uri GalleryUrl { get; set; } public Uri GalleryUrl { get; set; }
public bool DevelopmentDependency { get; set; } public bool DevelopmentDependency { get; set; }
public IFileSystem FileSystemPassedToExtractContents;
public string ExtractPathPassedToExtractContents;
public void ExtractContents(IFileSystem fileSystem, string extractPath)
{
FileSystemPassedToExtractContents = fileSystem;
ExtractPathPassedToExtractContents = extractPath;
}
} }
} }

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

@ -19,7 +19,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Versioning; using System.Runtime.Versioning;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.PackageManagement.EnvDTE;
@ -36,7 +35,6 @@ namespace ICSharpCode.PackageManagement.Design
public FakePackageManagementProject(string name) public FakePackageManagementProject(string name)
{ {
FakeInstallPackageAction = new FakeInstallPackageAction(this);
FakeUninstallPackageAction = new FakeUninstallPackageAction(this); FakeUninstallPackageAction = new FakeUninstallPackageAction(this);
this.Name = name; this.Name = name;
@ -60,7 +58,6 @@ namespace ICSharpCode.PackageManagement.Design
}; };
} }
private FakeInstallPackageAction FakeInstallPackageAction;
public FakeUninstallPackageAction FakeUninstallPackageAction; public FakeUninstallPackageAction FakeUninstallPackageAction;
public FakeUpdatePackageAction FirstFakeUpdatePackageActionCreated { public FakeUpdatePackageAction FirstFakeUpdatePackageActionCreated {
@ -74,6 +71,9 @@ namespace ICSharpCode.PackageManagement.Design
public List<FakeUpdatePackageAction> FakeUpdatePackageActionsCreated = public List<FakeUpdatePackageAction> FakeUpdatePackageActionsCreated =
new List<FakeUpdatePackageAction>(); new List<FakeUpdatePackageAction>();
public List<FakeReinstallPackageAction> FakeReinstallPackageActionsCreated =
new List<FakeReinstallPackageAction>();
public string Name { get; set; } public string Name { get; set; }
public bool IsPackageInstalled(string packageId) public bool IsPackageInstalled(string packageId)
@ -187,6 +187,13 @@ namespace ICSharpCode.PackageManagement.Design
return action; return action;
} }
public ReinstallPackageAction CreateReinstallPackageAction()
{
var action = new FakeReinstallPackageAction(this);
FakeReinstallPackageActionsCreated.Add(action);
return action;
}
public event EventHandler<PackageOperationEventArgs> PackageInstalled; public event EventHandler<PackageOperationEventArgs> PackageInstalled;
public void FirePackageInstalledEvent(PackageOperationEventArgs e) public void FirePackageInstalledEvent(PackageOperationEventArgs e)

61
src/AddIns/Misc/PackageManagement/Project/Src/Design/FakeReinstallPackageAction.cs

@ -0,0 +1,61 @@
// Copyright (c) 2015 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using ICSharpCode.PackageManagement.Scripting;
namespace ICSharpCode.PackageManagement.Design
{
public class FakeReinstallPackageAction : ReinstallPackageAction
{
public bool IsExecuted;
public FakePackageManagementProject FakeProject;
public FakeReinstallPackageAction()
: this(new FakePackageManagementProject())
{
}
public FakeReinstallPackageAction(IPackageManagementProject project)
: base(project, null)
{
FakeProject = project as FakePackageManagementProject;
}
protected override void ExecuteCore()
{
IsExecuted = true;
}
protected override void BeforeExecute()
{
}
protected override RunPackageScriptsAction CreateRunPackageScriptsAction(
IPackageScriptRunner scriptRunner,
IPackageManagementProject project)
{
return new RunPackageScriptsAction(
project,
scriptRunner,
new PackageScriptFactory(),
new NullGlobalMSBuildProjectCollection());
}
}
}

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

@ -67,30 +67,30 @@ namespace ICSharpCode.PackageManagement.Design
PackageSources.Add(setting); PackageSources.Add(setting);
} }
public Dictionary<string, KeyValuePair<string, string>> SavedSectionValues = public Dictionary<string, SettingValue> SavedSectionValues =
new Dictionary<string, KeyValuePair<string, string>>(); new Dictionary<string, SettingValue>();
public void SetValue(string section, string key, string value) public void SetValue(string section, string key, string value)
{ {
SavedSectionValues.Remove(section); SavedSectionValues.Remove(section);
SavedSectionValues.Add(section, new KeyValuePair<string, string>(key, value)); SavedSectionValues.Add(section, new SettingValue(key, value, false));
} }
public KeyValuePair<string, string> GetValuePassedToSetValueForActivePackageSourceSection() public SettingValue GetValuePassedToSetValueForActivePackageSourceSection()
{ {
return SavedSectionValues[RegisteredPackageSourceSettings.ActivePackageSourceSectionName]; return SavedSectionValues[RegisteredPackageSourceSettings.ActivePackageSourceSectionName];
} }
public void SetValues(string section, IList<KeyValuePair<string, string>> values) public void SetValues(string section, IList<SettingValue> values)
{ {
SavedSectionValueLists.Remove(section); SavedSectionValueLists.Remove(section);
SavedSectionValueLists.Add(section, values); SavedSectionValueLists.Add(section, values);
} }
public Dictionary<string, IList<KeyValuePair<string, string>>> SavedSectionValueLists public Dictionary<string, IList<SettingValue>> SavedSectionValueLists
= new Dictionary<string, IList<KeyValuePair<string, string>>>(); = new Dictionary<string, IList<SettingValue>>();
public IList<KeyValuePair<string, string>> GetValuesPassedToSetValuesForPackageSourcesSection() public IList<SettingValue> GetValuesPassedToSetValuesForPackageSourcesSection()
{ {
return SavedSectionValueLists[RegisteredPackageSourceSettings.PackageSourcesSectionName]; return SavedSectionValueLists[RegisteredPackageSourceSettings.PackageSourcesSectionName];
} }
@ -168,7 +168,7 @@ namespace ICSharpCode.PackageManagement.Design
DisabledPackageSources.Add(setting); DisabledPackageSources.Add(setting);
} }
public IList<KeyValuePair<string, string>> GetValuesPassedToSetValuesForDisabledPackageSourcesSection() public IList<SettingValue> GetValuesPassedToSetValuesForDisabledPackageSourcesSection()
{ {
return SavedSectionValueLists[RegisteredPackageSourceSettings.DisabledPackageSourceSectionName]; return SavedSectionValueLists[RegisteredPackageSourceSettings.DisabledPackageSourceSectionName];
} }
@ -186,7 +186,7 @@ namespace ICSharpCode.PackageManagement.Design
Sections.Add("packageRestore", items); Sections.Add("packageRestore", items);
} }
public KeyValuePair<string, string> GetValuePassedToSetValueForPackageRestoreSection() public SettingValue GetValuePassedToSetValueForPackageRestoreSection()
{ {
return SavedSectionValues["packageRestore"]; return SavedSectionValues["packageRestore"];
} }
@ -203,5 +203,15 @@ namespace ICSharpCode.PackageManagement.Design
items.Add (new SettingValue("repositoryPath", fullPath, false)); items.Add (new SettingValue("repositoryPath", fullPath, false));
Sections.Add(ConfigSectionName, items); Sections.Add(ConfigSectionName, items);
} }
public Dictionary<string, IList<SettingValue>> SectionsUpdated =
new Dictionary<string, IList<SettingValue>>();
public void UpdateSections(string section, IList<SettingValue> values)
{
SectionsUpdated.Remove(section);
SectionsUpdated.Add(section, values);
SetValues(section, values);
}
} }
} }

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

@ -31,5 +31,10 @@ namespace ICSharpCode.PackageManagement
{ {
return package.Repository.StartUpdateOperation(package.Id); return package.Repository.StartUpdateOperation(package.Id);
} }
public static IDisposable StartReintallOperation(this IPackageFromRepository package)
{
return package.Repository.StartReinstallOperation(package.Id);
}
} }
} }

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

@ -19,8 +19,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Versioning; using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.PackageManagement.EnvDTE;
using NuGet; using NuGet;
@ -63,6 +63,7 @@ namespace ICSharpCode.PackageManagement
UninstallPackageAction CreateUninstallPackageAction(); UninstallPackageAction CreateUninstallPackageAction();
UpdatePackageAction CreateUpdatePackageAction(); UpdatePackageAction CreateUpdatePackageAction();
UpdatePackagesAction CreateUpdatePackagesAction(); UpdatePackagesAction CreateUpdatePackagesAction();
ReinstallPackageAction CreateReinstallPackageAction();
void RunPackageOperations(IEnumerable<PackageOperation> expectedOperations); void RunPackageOperations(IEnumerable<PackageOperation> expectedOperations);

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

@ -32,5 +32,10 @@ namespace ICSharpCode.PackageManagement
{ {
return repository.StartOperation(RepositoryOperationNames.Update, mainPackageId, mainPackageVersion); return repository.StartOperation(RepositoryOperationNames.Update, mainPackageId, mainPackageVersion);
} }
public static IDisposable StartReinstallOperation(this IPackageRepository repository, string mainPackageId = null, string mainPackageVersion = null)
{
return repository.StartOperation(RepositoryOperationNames.Reinstall, mainPackageId, mainPackageVersion);
}
} }
} }

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

@ -31,9 +31,13 @@ namespace ICSharpCode.PackageManagement
IPackageManagementEvents packageManagementEvents) IPackageManagementEvents packageManagementEvents)
: base(project, packageManagementEvents) : base(project, packageManagementEvents)
{ {
DependencyVersion = DependencyVersion.Lowest;
OpenReadMeText = true;
} }
public bool IgnoreDependencies { get; set; } public bool IgnoreDependencies { get; set; }
public DependencyVersion DependencyVersion { get; set; }
public bool OpenReadMeText { get; set; }
protected override IEnumerable<PackageOperation> GetPackageOperations() protected override IEnumerable<PackageOperation> GetPackageOperations()
{ {
@ -48,5 +52,13 @@ namespace ICSharpCode.PackageManagement
OnParentPackageInstalled(); OnParentPackageInstalled();
} }
} }
protected override IOpenPackageReadMeMonitor CreateOpenPackageReadMeMonitor(string packageId)
{
if (OpenReadMeText) {
return base.CreateOpenPackageReadMeMonitor(packageId);
}
return NullOpenPackageReadMeMonitor.Null;
}
} }
} }

43
src/AddIns/Misc/PackageManagement/Project/Src/NullOpenPackageReadmeMonitor.cs

@ -0,0 +1,43 @@
//
// NullOpenPackageReadMeMonitor.cs
//
// Author:
// Matt Ward <matt.ward@xamarin.com>
//
// Copyright (c) 2015 Xamarin Inc. (http://xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
namespace ICSharpCode.PackageManagement
{
public class NullOpenPackageReadMeMonitor : IOpenPackageReadMeMonitor
{
public static readonly IOpenPackageReadMeMonitor Null = new NullOpenPackageReadMeMonitor();
public void Dispose()
{
}
public void OpenReadMeFile()
{
}
}
}

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

@ -211,5 +211,10 @@ namespace ICSharpCode.PackageManagement
public bool DevelopmentDependency { public bool DevelopmentDependency {
get { return package.DevelopmentDependency; } get { return package.DevelopmentDependency; }
} }
public void ExtractContents(IFileSystem fileSystem, string extractPath)
{
package.ExtractContents(fileSystem, extractPath);
}
} }
} }

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

@ -19,8 +19,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Versioning; using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using NuGet; using NuGet;
@ -211,7 +211,8 @@ namespace ICSharpCode.PackageManagement
List<IPackage> packages = packageManager.LocalRepository.FindPackagesById(packageId).ToList(); List<IPackage> packages = packageManager.LocalRepository.FindPackagesById(packageId).ToList();
if (packages.Count > 1) { if (packages.Count > 1) {
throw CreateAmbiguousPackageException(packageId); throw CreateAmbiguousPackageException(packageId);
} }
return packages.FirstOrDefault(); return packages.FirstOrDefault();
} }
@ -220,5 +221,10 @@ namespace ICSharpCode.PackageManagement
string message = String.Format("Multiple versions of '{0}' found. Please specify the version.", packageId); string message = String.Format("Multiple versions of '{0}' found. Please specify the version.", packageId);
return new InvalidOperationException(message); return new InvalidOperationException(message);
} }
public ReinstallPackageAction CreateReinstallPackageAction()
{
return new ReinstallPackageAction(this, packageManagementEvents);
}
} }
} }

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

@ -32,11 +32,11 @@ namespace ICSharpCode.PackageManagement
return new InstallWalker( return new InstallWalker(
localRepository, localRepository,
sourceRepository, sourceRepository,
null, installAction.ProjectTargetFramework,
logger, logger,
installAction.IgnoreDependencies, installAction.IgnoreDependencies,
installAction.AllowPrereleaseVersions, installAction.AllowPrereleaseVersions,
DependencyVersion.Lowest); installAction.DependencyVersion);
} }
public IPackageOperationResolver CreateUpdatePackageOperationResolver(IPackageRepository localRepository, IPackageRepository sourceRepository, ILogger logger, IUpdatePackageSettings settings) public IPackageOperationResolver CreateUpdatePackageOperationResolver(IPackageRepository localRepository, IPackageRepository sourceRepository, ILogger logger, IUpdatePackageSettings settings)

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

@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement.Scripting; using ICSharpCode.PackageManagement.Scripting;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using NuGet; using NuGet;
@ -43,6 +44,10 @@ namespace ICSharpCode.PackageManagement
public IPackageScriptRunner PackageScriptRunner { get; set; } public IPackageScriptRunner PackageScriptRunner { get; set; }
public bool AllowPrereleaseVersions { get; set; } public bool AllowPrereleaseVersions { get; set; }
public FrameworkName ProjectTargetFramework {
get { return Project.TargetFramework; }
}
public virtual bool HasPackageScriptsToRun() public virtual bool HasPackageScriptsToRun()
{ {
return false; return false;

70
src/AddIns/Misc/PackageManagement/Project/Src/ReinstallPackageAction.cs

@ -0,0 +1,70 @@
//
// ReinstallPackageAction.cs
//
// Author:
// Matt Ward <matt.ward@xamarin.com>
//
// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
using ICSharpCode.PackageManagement;
using NuGet;
namespace ICSharpCode.PackageManagement
{
public class ReinstallPackageAction : ProcessPackageAction
{
public ReinstallPackageAction(
IPackageManagementProject project,
IPackageManagementEvents packageManagementEvents)
: base(project, packageManagementEvents)
{
}
public bool UpdateDependencies { get; set; }
protected override void ExecuteCore()
{
UninstallPackage();
InstallPackage();
}
void UninstallPackage()
{
UninstallPackageAction action = Project.CreateUninstallPackageAction();
action.Package = Package;
action.ForceRemove = true;
action.RemoveDependencies = UpdateDependencies;
action.Execute();
}
void InstallPackage()
{
InstallPackageAction action = Project.CreateInstallPackageAction();
action.Package = Package;
action.OpenReadMeText = false;
action.IgnoreDependencies = !UpdateDependencies;
action.AllowPrereleaseVersions = !Package.IsReleaseVersion();
action.Execute();
}
}
}

2
src/AddIns/Misc/PackageManagement/RequiredLibraries/COPYRIGHT.txt

@ -1,4 +1,4 @@
Copyright 2010-2012 Outercurve Foundation Copyright 2010-2014 Outercurve Foundation
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

10
src/AddIns/Misc/PackageManagement/RequiredLibraries/CREDITS.txt

@ -1,6 +1,6 @@
NuGet Project NuGet Project
ASP.NET Open Source Gallery at Outercurve Foundation ASP.NET Open Source Gallery at Outercurve Foundation
Copyright 2010 Outercurve Foundation Copyright 2010-2014 Outercurve Foundation
This product includes software developed at This product includes software developed at
The Outercurve Foundation (http://www.outercurve.org/). The Outercurve Foundation (http://www.outercurve.org/).
@ -29,4 +29,10 @@ Ninject 2.1
----- -----
Website: http://ninject.org/ Website: http://ninject.org/
Copyright: Copyright (c) 2010 Nate Kohari Copyright: Copyright (c) 2010 Nate Kohari
License: Apache 2.0 License: Apache 2.0
QueryInterceptor 0.2
-----
Website: https://github.com/davidfowl/QueryInterceptor
Copyright: Copyright (c) 2011 David Fowler
License: The MIT License

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

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

@ -119,6 +119,7 @@
<Compile Include="Src\Helpers\FakeUpdatePackageActions.cs" /> <Compile Include="Src\Helpers\FakeUpdatePackageActions.cs" />
<Compile Include="Src\Helpers\FakeUpdatePackageActionsFactory.cs" /> <Compile Include="Src\Helpers\FakeUpdatePackageActionsFactory.cs" />
<Compile Include="Src\Helpers\PackageOperationHelper.cs" /> <Compile Include="Src\Helpers\PackageOperationHelper.cs" />
<Compile Include="Src\Helpers\PackageRepositoryOperationInfo.cs" />
<Compile Include="Src\Helpers\PropertiesHelper.cs" /> <Compile Include="Src\Helpers\PropertiesHelper.cs" />
<Compile Include="Src\Helpers\SelectedProjectCollectionAssert.cs" /> <Compile Include="Src\Helpers\SelectedProjectCollectionAssert.cs" />
<Compile Include="Src\Helpers\SolutionHelper.cs" /> <Compile Include="Src\Helpers\SolutionHelper.cs" />
@ -196,6 +197,7 @@
<Compile Include="Src\PackageManagementServiceProviderTests.cs" /> <Compile Include="Src\PackageManagementServiceProviderTests.cs" />
<Compile Include="Src\PackageViewModelOperationLoggerTests.cs" /> <Compile Include="Src\PackageViewModelOperationLoggerTests.cs" />
<Compile Include="Src\ReducedPackageOperationsTests.cs" /> <Compile Include="Src\ReducedPackageOperationsTests.cs" />
<Compile Include="Src\ReinstallPackageActionTests.cs" />
<Compile Include="Src\RunAllProjectPackageScriptsActionTests.cs" /> <Compile Include="Src\RunAllProjectPackageScriptsActionTests.cs" />
<Compile Include="Src\Scripting\ConsoleHostFileConflictResolverTests.cs" /> <Compile Include="Src\Scripting\ConsoleHostFileConflictResolverTests.cs" />
<Compile Include="Src\Scripting\MSBuildProjectImportsMergerTests.cs" /> <Compile Include="Src\Scripting\MSBuildProjectImportsMergerTests.cs" />

22
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeOperationAwarePackageRepository.cs

@ -17,10 +17,9 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Collections.Generic;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using NuGet; using NuGet;
using NUnit.Framework;
using Rhino.Mocks;
namespace PackageManagement.Tests.Helpers namespace PackageManagement.Tests.Helpers
{ {
@ -29,25 +28,24 @@ namespace PackageManagement.Tests.Helpers
public string OperationStarted; public string OperationStarted;
public string MainPackageIdForOperationStarted; public string MainPackageIdForOperationStarted;
IDisposable Operation = MockRepository.GenerateStub<IDisposable>(); PackageRepositoryOperationInfo operationInfo;
public List<PackageRepositoryOperationInfo> OperationsStarted = new List<PackageRepositoryOperationInfo>();
public IDisposable StartOperation(string operationName, string mainPackageId, string mainPackageVersion) public IDisposable StartOperation(string operationName, string mainPackageId, string mainPackageVersion)
{ {
operationInfo = new PackageRepositoryOperationInfo(operationName, mainPackageId, mainPackageVersion);
OperationsStarted.Add(operationInfo);
OperationStarted = operationName; OperationStarted = operationName;
MainPackageIdForOperationStarted = mainPackageId; MainPackageIdForOperationStarted = mainPackageId;
return Operation;
return operationInfo.Operation;
} }
public void AssertOperationWasStartedAndDisposed(string expectedOperationName, string expectedMainPackageId) public void AssertOperationWasStartedAndDisposed(string expectedOperationName, string expectedMainPackageId)
{ {
Assert.AreEqual(expectedOperationName, OperationStarted); operationInfo.AssertOperationWasStartedAndDisposed(expectedOperationName, expectedMainPackageId);
Assert.AreEqual(expectedMainPackageId, MainPackageIdForOperationStarted);
AssertOperationIsDisposed();
}
void AssertOperationIsDisposed()
{
Operation.AssertWasCalled(o => o.Dispose());
} }
} }
} }

52
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/PackageRepositoryOperationInfo.cs

@ -0,0 +1,52 @@
// Copyright (c) 2015 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using NUnit.Framework;
using Rhino.Mocks;
namespace PackageManagement.Tests.Helpers
{
public class PackageRepositoryOperationInfo
{
public PackageRepositoryOperationInfo(string operationName, string packageId, string packageVersion)
{
Operation = MockRepository.GenerateStub<IDisposable>();
Name = operationName;
PackageId = packageId;
PackageVersion = packageVersion;
}
public IDisposable Operation { get; set; }
public string Name { get; set; }
public string PackageId { get; set; }
public string PackageVersion{ get; set; }
public void AssertOperationWasStartedAndDisposed(string expectedOperationName, string expectedMainPackageId)
{
Assert.AreEqual(expectedOperationName, Name);
Assert.AreEqual(expectedMainPackageId, PackageId);
AssertOperationIsDisposed();
}
void AssertOperationIsDisposed()
{
Operation.AssertWasCalled(o => o.Dispose());
}
}
}

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

@ -31,6 +31,7 @@ namespace PackageManagement.Tests.Helpers
CreateOpenPackageReadMeMonitorAction = packageId => { CreateOpenPackageReadMeMonitorAction = packageId => {
IOpenPackageReadMeMonitor monitor = base.CreateOpenPackageReadMeMonitor(packageId); IOpenPackageReadMeMonitor monitor = base.CreateOpenPackageReadMeMonitor(packageId);
OpenPackageReadMeMonitor = monitor as OpenPackageReadMeMonitor; OpenPackageReadMeMonitor = monitor as OpenPackageReadMeMonitor;
NullOpenPackageReadMeMonitorIsCreated = monitor is NullOpenPackageReadMeMonitor;
return monitor; return monitor;
}; };
} }
@ -42,5 +43,7 @@ namespace PackageManagement.Tests.Helpers
{ {
return CreateOpenPackageReadMeMonitorAction(packageId); return CreateOpenPackageReadMeMonitorAction(packageId);
} }
public bool NullOpenPackageReadMeMonitorIsCreated;
} }
} }

25
src/AddIns/Misc/PackageManagement/Test/Src/InstallPackageActionTests.cs

@ -484,5 +484,30 @@ namespace PackageManagement.Tests
Assert.IsFalse(fileService.IsOpenFileCalled); Assert.IsFalse(fileService.IsOpenFileCalled);
Assert.IsTrue(monitor.IsDisposed); Assert.IsTrue(monitor.IsDisposed);
} }
[Test]
public void DependencyVersion_DefaultValue_IsLowest()
{
CreateAction();
Assert.AreEqual(DependencyVersion.Lowest, action.DependencyVersion);
}
[Test]
public void OpenReadMeText_DefaultValue_IsTrue()
{
CreateAction();
Assert.IsTrue(action.OpenReadMeText);
}
[Test]
public void Execute_OpenReadMeTextSetToFalse_NullOpenPackageReadmeMonitorCreated()
{
CreateAction();
action.OpenReadMeText = false;
installPackageHelper.TestPackage.Id = "Test";
installPackageHelper.InstallTestPackage();
Assert.IsTrue(action.NullOpenPackageReadMeMonitorIsCreated);
}
} }
} }

13
src/AddIns/Misc/PackageManagement/Test/Src/PackageFromRepositoryTests.cs

@ -458,5 +458,18 @@ namespace PackageManagement.Tests
Assert.IsTrue(dependency); Assert.IsTrue(dependency);
} }
[Test]
public void ExtractPath_WrappedPackage_WrappedPackageExtractContentsCalled()
{
CreatePackage();
var expectedFileSystem = new FakeFileSystem();
string expectedPath = @"d:\projects\test\packages";
package.ExtractContents(expectedFileSystem, expectedPath);
Assert.AreEqual(expectedFileSystem, fakePackage.FileSystemPassedToExtractContents);
Assert.AreEqual(expectedPath, fakePackage.ExtractPathPassedToExtractContents);
}
} }
} }

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

@ -18,9 +18,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
@ -171,16 +168,16 @@ namespace PackageManagement.Tests
registeredPackageSources.Clear(); registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource); registeredPackageSources.Add(packageSource);
var expectedSavedPackageSourceSettings = new List<KeyValuePair<string, string>>(); var expectedSavedPackageSourceSettings = new List<SettingValue>();
expectedSavedPackageSourceSettings.Add(new KeyValuePair<string, string>("Test", "http://codeplex.com")); expectedSavedPackageSourceSettings.Add(new SettingValue("Test", "http://codeplex.com", false));
IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = fakeSettings.GetValuesPassedToSetValuesForPackageSourcesSection(); IList<SettingValue> actualSavedPackageSourceSettings = fakeSettings.GetValuesPassedToSetValuesForPackageSourcesSection();
Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings); Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings);
} }
[Test] [Test]
public void PackageSources_OnePackageSourceAdded_PackageSourcesSectionDeletedFromSettings() public void PackageSources_OnePackageSourceAdded_PackageSourcesSectionUpdated()
{ {
CreateSettings(); CreateSettings();
CreateOptions(fakeSettings); CreateOptions(fakeSettings);
@ -190,9 +187,11 @@ namespace PackageManagement.Tests
registeredPackageSources.Clear(); registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource); registeredPackageSources.Add(packageSource);
bool sectionDeleted = fakeSettings.IsPackageSourcesSectionDeleted; IList<SettingValue> settings = fakeSettings.SectionsUpdated[RegisteredPackageSourceSettings.PackageSourcesSectionName];
Assert.IsTrue(sectionDeleted); Assert.AreEqual(1, settings.Count);
Assert.AreEqual("Test", settings[0].Key);
Assert.AreEqual("http://codeplex.com", settings[0].Value);
} }
[Test] [Test]
@ -222,10 +221,10 @@ namespace PackageManagement.Tests
options.ActivePackageSource = packageSource; options.ActivePackageSource = packageSource;
var expectedKeyValuePair = new KeyValuePair<string, string>("Test", "http://sharpdevelop.com"); var expectedKeyValuePair = new SettingValue("Test", "http://sharpdevelop.com", false);
KeyValuePair<string, string> actualKeyValuePair = fakeSettings.GetValuePassedToSetValueForActivePackageSourceSection(); SettingValue actualSetting = fakeSettings.GetValuePassedToSetValueForActivePackageSourceSection();
Assert.AreEqual(expectedKeyValuePair, actualKeyValuePair); Assert.AreEqual(expectedKeyValuePair, actualSetting);
} }
[Test] [Test]
@ -387,9 +386,9 @@ namespace PackageManagement.Tests
registeredPackageSources.Clear(); registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource); registeredPackageSources.Add(packageSource);
bool sectionDeleted = fakeSettings.IsDisabledPackageSourcesSectionDeleted; IList<SettingValue> settings = fakeSettings.SectionsUpdated[RegisteredPackageSourceSettings.DisabledPackageSourceSectionName];
Assert.IsTrue(sectionDeleted); Assert.AreEqual(0, settings.Count);
} }
[Test] [Test]
@ -403,10 +402,10 @@ namespace PackageManagement.Tests
registeredPackageSources.Clear(); registeredPackageSources.Clear();
registeredPackageSources.Add(packageSource); registeredPackageSources.Add(packageSource);
var expectedSavedPackageSourceSettings = new List<KeyValuePair<string, string>>(); var expectedSavedPackageSourceSettings = new List<SettingValue>();
expectedSavedPackageSourceSettings.Add(new KeyValuePair<string, string>(packageSource.Name, "true")); expectedSavedPackageSourceSettings.Add(new SettingValue(packageSource.Name, "true", false));
IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = IList<SettingValue> actualSavedPackageSourceSettings =
fakeSettings.GetValuesPassedToSetValuesForDisabledPackageSourcesSection(); fakeSettings.GetValuesPassedToSetValuesForDisabledPackageSourcesSection();
Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings); Assert.AreEqual(expectedSavedPackageSourceSettings, actualSavedPackageSourceSettings);
} }
@ -424,7 +423,7 @@ namespace PackageManagement.Tests
bool result = fakeSettings.AnyValuesPassedToSetValuesForDisabledPackageSourcesSection; bool result = fakeSettings.AnyValuesPassedToSetValuesForDisabledPackageSourcesSection;
IList<KeyValuePair<string, string>> actualSavedPackageSourceSettings = IList<SettingValue> actualSavedPackageSourceSettings =
fakeSettings.GetValuesPassedToSetValuesForDisabledPackageSourcesSection(); fakeSettings.GetValuesPassedToSetValuesForDisabledPackageSourcesSection();
Assert.AreEqual(0, actualSavedPackageSourceSettings.Count); Assert.AreEqual(0, actualSavedPackageSourceSettings.Count);
} }
@ -458,10 +457,10 @@ namespace PackageManagement.Tests
options.IsPackageRestoreEnabled = true; options.IsPackageRestoreEnabled = true;
KeyValuePair<string, string> keyPair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection(); SettingValue setting = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection();
Assert.AreEqual("enabled", keyPair.Key); Assert.AreEqual("enabled", setting.Key);
Assert.AreEqual("True", keyPair.Value); Assert.AreEqual("True", setting.Value);
} }
[Test] [Test]
@ -486,8 +485,8 @@ namespace PackageManagement.Tests
options.IsPackageRestoreEnabled = false; options.IsPackageRestoreEnabled = false;
KeyValuePair<string, string> keyValuePair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection(); SettingValue setting = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection();
Assert.AreEqual("False", keyValuePair.Value); Assert.AreEqual("False", setting.Value);
} }
[Test] [Test]

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

@ -21,6 +21,7 @@ using System.Collections.Generic;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework; using NUnit.Framework;
using PackageManagement.Tests.Helpers; using PackageManagement.Tests.Helpers;
@ -366,8 +367,8 @@ namespace PackageManagement.Tests
viewModel.SaveOptions(); viewModel.SaveOptions();
KeyValuePair<string, string> keyPair = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection(); SettingValue setting = fakeSettings.GetValuePassedToSetValueForPackageRestoreSection();
Assert.AreEqual("True", keyPair.Value); Assert.AreEqual("True", setting.Value);
} }
} }
} }

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

@ -19,8 +19,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Runtime.Versioning; using System.Runtime.Versioning;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.PackageManagement.EnvDTE;
@ -823,9 +823,9 @@ namespace PackageManagement.Tests
CreateProject(); CreateProject();
fakeProjectManager.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.0"); fakeProjectManager.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.0");
IPackage packageFound = project.FindPackage("Test", new SemanticVersion("2.1")); IPackage package = project.FindPackage("Test", new SemanticVersion("2.1"));
Assert.IsNull(packageFound); Assert.IsNull(package);
} }
[Test] [Test]
@ -845,9 +845,9 @@ namespace PackageManagement.Tests
CreateProject(); CreateProject();
fakePackageManager.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.0"); fakePackageManager.FakeLocalRepository.AddFakePackageWithVersion("Test", "1.0");
IPackage packageFound = project.FindPackage("Test", new SemanticVersion("2.1")); IPackage package = project.FindPackage("Test", new SemanticVersion("2.1"));
Assert.IsNull(packageFound); Assert.IsNull(package);
} }
[Test] [Test]
@ -873,5 +873,25 @@ namespace PackageManagement.Tests
Assert.AreEqual("Multiple versions of 'Test' found. Please specify the version.", ex.Message); Assert.AreEqual("Multiple versions of 'Test' found. Please specify the version.", ex.Message);
} }
[Test]
public void FindPackage_PackageNotFoundWhenPackageIdSpecified_ExceptionThrown()
{
CreateProject();
IPackage package = project.FindPackage("Test", null);
Assert.IsNull(package);
}
[Test]
public void FindPackage_PackageNotFoundWhenPackageIdAndVersionSpecified_ExceptionThrown()
{
CreateProject();
IPackage package = project.FindPackage("Test", new SemanticVersion("1.2"));
Assert.IsNull(package);
}
} }
} }

13
src/AddIns/Misc/PackageManagement/Test/Src/ProcessPackageActionTests.cs

@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Runtime.Versioning;
using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design; using ICSharpCode.PackageManagement.Design;
using ICSharpCode.PackageManagement.Scripting; using ICSharpCode.PackageManagement.Scripting;
@ -170,5 +171,17 @@ namespace PackageManagement.Tests
Assert.AreEqual(expectedException, exception); Assert.AreEqual(expectedException, exception);
} }
[Test]
public void ProjectTargetFramework_ProjectTargetFrameworkIsNet40_ReturnsNet40()
{
CreateAction();
var expectedTargetFramework = new FrameworkName(".NETFramework, Version=v4.0");
fakeProject.TargetFramework = expectedTargetFramework;
FrameworkName targetFramework = action.ProjectTargetFramework;
Assert.AreEqual(expectedTargetFramework, targetFramework);
}
} }
} }

148
src/AddIns/Misc/PackageManagement/Test/Src/ReinstallPackageActionTests.cs

@ -0,0 +1,148 @@
//
// ReinstallPackageActionTests.cs
//
// Author:
// Matt Ward <matt.ward@xamarin.com>
//
// Copyright (c) 2014 Xamarin Inc. (http://xamarin.com)
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework;
namespace ICSharpCode.PackageManagement.Tests
{
[TestFixture]
public class ReinstallPackageActionTests
{
ReinstallPackageAction action;
PackageManagementEvents packageManagementEvents;
FakePackageManagementProject project;
void CreateAction(string packageId = "MyPackage", string packageVersion = "1.2.3.4")
{
project = new FakePackageManagementProject();
project.AddFakeInstallOperation();
packageManagementEvents = new PackageManagementEvents();
action = new ReinstallPackageAction(project, packageManagementEvents);
action.PackageId = packageId;
action.PackageVersion = new SemanticVersion(packageVersion);
}
FakePackage AddPackageToSourceRepository(string packageId, string packageVersion)
{
return project.FakeSourceRepository.AddFakePackageWithVersion(packageId, packageVersion);
}
[Test]
public void Execute_PackageExistsInSourceRepository_PackageIsUninstalled()
{
CreateAction("MyPackage", "1.2.3.4");
FakePackage package = AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.Execute();
Assert.IsTrue(project.FakeUninstallPackageAction.IsExecuted);
Assert.AreEqual(package, project.FakeUninstallPackageAction.Package);
}
[Test]
public void Execute_PackageExistsInSourceRepository_PackageIsInstalled()
{
CreateAction("MyPackage", "1.2.3.4");
FakePackage package = AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.Execute();
Assert.IsTrue(project.LastInstallPackageCreated.IsExecuteCalled);
Assert.AreEqual(package, project.LastInstallPackageCreated.Package);
}
[Test]
public void Execute_PackageExistsInSourceRepository_PackageIsForcefullyRemovedSoItDoesNotFailIfOtherPackagesDependOnIt()
{
CreateAction("MyPackage", "1.2.3.4");
AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.Execute();
Assert.IsTrue(project.FakeUninstallPackageAction.ForceRemove);
}
[Test]
public void Execute_UpdateDependenciesIsFalse_PackageInstalledWithoutUpdatingDependencies()
{
CreateAction("MyPackage", "1.2.3.4");
AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.UpdateDependencies = false;
action.Execute();
Assert.IsTrue(project.LastInstallPackageCreated.IsExecuteCalled);
Assert.IsTrue(project.LastInstallPackageCreated.IgnoreDependencies);
Assert.IsFalse(project.FakeUninstallPackageAction.RemoveDependencies);
}
[Test]
public void Execute_UpdateDependenciesIsTrue_PackageInstalledWithoutIgnoringDependencies()
{
CreateAction("MyPackage", "1.2.3.4");
AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.UpdateDependencies = true;
action.Execute();
Assert.IsTrue(project.LastInstallPackageCreated.IsExecuteCalled);
Assert.IsFalse(project.LastInstallPackageCreated.IgnoreDependencies);
Assert.IsTrue(project.FakeUninstallPackageAction.RemoveDependencies);
Assert.IsFalse(project.LastInstallPackageCreated.AllowPrereleaseVersions);
}
[Test]
public void Execute_PackageIsPrerelease_PackageInstalledAllowingPrereleases()
{
CreateAction("MyPackage", "1.2.3-alpha1");
AddPackageToSourceRepository("MyPackage", "1.2.3-alpha1");
action.UpdateDependencies = true;
action.Execute();
Assert.IsTrue(project.LastInstallPackageCreated.IsExecuteCalled);
Assert.IsTrue(project.LastInstallPackageCreated.AllowPrereleaseVersions);
}
[Test]
public void Execute_PackageExistsInSourceRepository_PackageIsInstalledWithoutOpeningReadmeTxt ()
{
CreateAction("MyPackage", "1.2.3.4");
FakePackage package = AddPackageToSourceRepository("MyPackage", "1.2.3.4");
action.Execute();
Assert.IsTrue(project.LastInstallPackageCreated.IsExecuteCalled);
Assert.IsFalse(project.LastInstallPackageCreated.OpenReadMeText);
}
}
}

6
src/Main/Base/Project/Util/DotnetDetection.cs

@ -66,6 +66,12 @@ namespace ICSharpCode.SharpDevelop
return GetDotnet4Release() >= 379893; return GetDotnet4Release() >= 379893;
} }
public static bool IsDotnet46Installed()
{
// 393273 is .NET 4.6 on my Win7 machine with VS 2015 RC installed
return GetDotnet4Release() >= 393273;
}
/// <summary> /// <summary>
/// Gets the .NET 4.x release number. /// Gets the .NET 4.x release number.
/// The numbers are documented on http://msdn.microsoft.com/en-us/library/hh925568.aspx /// The numbers are documented on http://msdn.microsoft.com/en-us/library/hh925568.aspx

2
src/Main/GlobalAssemblyInfo.cs.template

@ -46,7 +46,7 @@ internal static class RevisionClass
public const string Minor = "1"; public const string Minor = "1";
public const string Build = "0"; public const string Build = "0";
public const string Revision = "$INSERTREVISION$"; public const string Revision = "$INSERTREVISION$";
public const string VersionName = "Beta 2"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1") public const string VersionName = "RC"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"; public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$";
} }

Loading…
Cancel
Save