@ -219,6 +219,7 @@ namespace ICSharpCode.PackageManagement
public void AddOrManagePackage ( )
public void AddOrManagePackage ( )
{
{
try {
if ( ! selectedProjects . HasSingleProjectSelected ( ) ) {
if ( ! selectedProjects . HasSingleProjectSelected ( ) ) {
if ( IsProjectPackage ( package ) ) {
if ( IsProjectPackage ( package ) ) {
ManagePackage ( ) ;
ManagePackage ( ) ;
@ -228,6 +229,10 @@ namespace ICSharpCode.PackageManagement
} else {
} else {
AddPackage ( ) ;
AddPackage ( ) ;
}
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
public void AddPackage ( )
public void AddPackage ( )
@ -236,14 +241,27 @@ namespace ICSharpCode.PackageManagement
logger . LogAddingPackage ( ) ;
logger . LogAddingPackage ( ) ;
using ( IDisposable operation = StartInstallOperation ( package ) ) {
using ( IDisposable operation = StartInstallOperation ( package ) ) {
TryAddingPackage ( ) ;
}
logger . LogAfterPackageOperationCompletes ( ) ;
}
void TryAddingPackage ( )
{
try {
if ( IsProjectPackage ( package ) ) {
if ( IsProjectPackage ( package ) ) {
TryInstallingPackageIntoProject ( ) ;
GetInstallOperationsForProject ( ) ;
if ( LicensesAccepted ( ) ) {
InstallPackageIntoProject ( ) ;
}
} else {
} else {
TryInstallingPackageIntoSolution ( ) ;
InstallPackageIntoSolution ( ) ;
}
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
logger . LogAfterPackageOperationCompletes ( ) ;
}
}
protected virtual IDisposable StartInstallOperation ( IPackageFromRepository package )
protected virtual IDisposable StartInstallOperation ( IPackageFromRepository package )
@ -315,10 +333,9 @@ namespace ICSharpCode.PackageManagement
return selectedProjects . Solution . IsPackageInstalled ( packageToCheck ) ;
return selectedProjects . Solution . IsPackageInstalled ( packageToCheck ) ;
}
}
protected virtual void Try Installing PackageIntoSolution( )
protected virtual void InstallPackageIntoSolution ( )
{
{
try {
ISolutionPackageRepository solutionRepository = selectedProjects . Solution . CreateSolutionPackageRepository ( ) ;
var solutionRepository = selectedProjects . Solution . CreateSolutionPackageRepository ( ) ;
var installAction = new InstallPackageAction ( null , packageManagementEvents ) ;
var installAction = new InstallPackageAction ( null , packageManagementEvents ) ;
installAction . Package = package ;
installAction . Package = package ;
installAction . IgnoreDependencies = false ;
installAction . IgnoreDependencies = false ;
@ -330,11 +347,6 @@ namespace ICSharpCode.PackageManagement
InstallPackageIntoSolution ( solutionRepository , installAction , package ) ;
InstallPackageIntoSolution ( solutionRepository , installAction , package ) ;
packageManagementEvents . OnParentPackageInstalled ( package ) ;
packageManagementEvents . OnParentPackageInstalled ( package ) ;
}
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
void GetInstallOperationsForSolutionPackage (
void GetInstallOperationsForSolutionPackage (
@ -369,10 +381,9 @@ namespace ICSharpCode.PackageManagement
installAction . AllowPrereleaseVersions ) ;
installAction . AllowPrereleaseVersions ) ;
}
}
protected virtual void TryUpdating PackageInSolution ( )
protected void Update PackageInSolution ( )
{
{
try {
ISolutionPackageRepository solutionRepository = selectedProjects . Solution . CreateSolutionPackageRepository ( ) ;
var solutionRepository = selectedProjects . Solution . CreateSolutionPackageRepository ( ) ;
var updateAction = new UpdatePackageAction ( null , packageManagementEvents ) ;
var updateAction = new UpdatePackageAction ( null , packageManagementEvents ) ;
updateAction . Package = package ;
updateAction . Package = package ;
updateAction . AllowPrereleaseVersions = parent . IncludePrerelease ;
updateAction . AllowPrereleaseVersions = parent . IncludePrerelease ;
@ -389,10 +400,6 @@ namespace ICSharpCode.PackageManagement
packageManagementEvents . OnParentPackagesUpdated ( updatedPackages ) ;
packageManagementEvents . OnParentPackagesUpdated ( updatedPackages ) ;
}
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
void GetUpdateOperationsForSolutionPackage (
void GetUpdateOperationsForSolutionPackage (
@ -426,19 +433,6 @@ namespace ICSharpCode.PackageManagement
updateAction . AllowPrereleaseVersions ) ;
updateAction . AllowPrereleaseVersions ) ;
}
}
void TryInstallingPackageIntoProject ( )
{
try {
GetInstallOperationsForProject ( ) ;
if ( LicensesAccepted ( ) ) {
InstallPackageIntoProject ( ) ;
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
void InstallPackageIntoProject ( )
void InstallPackageIntoProject ( )
{
{
InstallPackageIntoProject ( packageOperations ) ;
InstallPackageIntoProject ( packageOperations ) ;
@ -467,6 +461,7 @@ namespace ICSharpCode.PackageManagement
public void RemoveOrManagePackage ( )
public void RemoveOrManagePackage ( )
{
{
try {
if ( selectedProjects . HasMultipleProjects ( ) ) {
if ( selectedProjects . HasMultipleProjects ( ) ) {
if ( IsProjectPackage ( package ) ) {
if ( IsProjectPackage ( package ) ) {
ManagePackage ( ) ;
ManagePackage ( ) ;
@ -476,6 +471,10 @@ namespace ICSharpCode.PackageManagement
} else {
} else {
RemovePackage ( ) ;
RemovePackage ( ) ;
}
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
public void RemovePackage ( )
public void RemovePackage ( )
@ -483,57 +482,46 @@ namespace ICSharpCode.PackageManagement
ClearReportedMessages ( ) ;
ClearReportedMessages ( ) ;
logger . LogRemovingPackage ( ) ;
logger . LogRemovingPackage ( ) ;
if ( IsProjectPackage ( package ) ) {
TryRemovingPackage ( ) ;
TryUninstallingPackageFromProject ( ) ;
} else {
TrySolutionPackageUninstall ( ) ;
}
logger . LogAfterPackageOperationCompletes ( ) ;
logger . LogAfterPackageOperationCompletes ( ) ;
}
}
void Log RemovingPackage( )
void Try RemovingPackage( )
{
{
logger . LogRemovingPackage ( ) ;
try {
if ( IsProjectPackage ( package ) ) {
IPackageManagementProject project = GetSingleProjectSelected ( ) ;
UninstallPackageAction action = project . CreateUninstallPackageAction ( ) ;
action . Package = package ;
actionRunner . Run ( action ) ;
} else {
UninstallPackageFromSolution ( ) ;
}
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
void TrySolutionPackageUninstall ( )
void LogRemovingPackage ( )
{
{
TryUninstallingPackageFromSolution ( package ) ;
logger . LogRemovingPackage ( ) ;
}
}
protected void TryUninstallingPackageFromSolution ( IPackage removePackage )
void UninstallPackageFromSolution ( )
{
{
try {
var solutionPackageRepository = PackageManagementServices . Solution . CreateSolutionPackageRepository ( ) ;
var solutionPackageRepository = PackageManagementServices . Solution . CreateSolutionPackageRepository ( ) ;
var packageManager = new PackageManager (
var packageManager = new PackageManager (
solutionPackageRepository . Repository ,
solutionPackageRepository . Repository ,
solutionPackageRepository . PackagePathResolver ,
solutionPackageRepository . PackagePathResolver ,
solutionPackageRepository . FileSystem ) ;
solutionPackageRepository . FileSystem ) ;
packageManager . UninstallPackage ( removePackage ) ;
packageManager . UninstallPackage ( package ) ;
solutionPackageRepository . Repository . RemovePackage ( removePackage ) ;
packageManagementEvents . OnParentPackageUninstalled ( removePackage ) ;
} catch ( Exception ex ) {
solutionPackageRepository . Repository . RemovePackage ( package ) ;
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
void TryUninstallingPackageFromProject ( )
packageManagementEvents . OnParentPackageUninstalled ( package ) ;
{
try {
IPackageManagementProject project = GetSingleProjectSelected ( ) ;
UninstallPackageAction action = project . CreateUninstallPackageAction ( ) ;
action . Package = package ;
actionRunner . Run ( action ) ;
} catch ( Exception ex ) {
ReportError ( ex ) ;
logger . LogError ( ex ) ;
}
}
}
public bool IsManaged {
public bool IsManaged {