From 3859fb5c1f120197a58f5788bb00cc9dec564b66 Mon Sep 17 00:00:00 2001 From: "Bobby Abellana (aider)" Date: Fri, 21 Feb 2025 10:27:52 -0800 Subject: [PATCH] feat: Add Microsoft Graph and OpenXml module installation to Install-Dependencies.ps1 --- Install-Dependencies.ps1 | 44 ++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/Install-Dependencies.ps1 b/Install-Dependencies.ps1 index eee73d6..4e7c067 100644 --- a/Install-Dependencies.ps1 +++ b/Install-Dependencies.ps1 @@ -5,23 +5,51 @@ Installs prerequisites for SharePoint XLS Converter application #> # Enable TLS 1.2 for secure connections -[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointProtocolType]::Tls12 Write-Host "Installing required modules..." -ForegroundColor Cyan -# Install PnP.PowerShell module if not exists -if (-not (Get-Module -ListAvailable -Name PnP.PowerShell)) { +# Install Microsoft.Graph modules +$graphModules = @( + "Microsoft.Graph.Sites", + "Microsoft.Graph.Files", + "Microsoft.Graph.Authentication" +) + +foreach ($module in $graphModules) { + if (-not (Get-Module -ListAvailable -Name $module)) { + try { + Install-Module $module -Scope CurrentUser -Force -AllowClobber + Write-Host "$module module installed successfully" -ForegroundColor Green + } + catch { + Write-Host "Failed to install $module: $_" -ForegroundColor Red + exit 1 + } + } + else { + Write-Host "$module module is already installed" -ForegroundColor Yellow + } +} + +# Install DocumentFormat.OpenXml module +if (-not (Get-Module -ListAvailable -Name DocumentFormat.OpenXml)) { try { - Install-Module PnP.PowerShell -Scope CurrentUser -Force -AllowClobber - Write-Host "PnP.PowerShell module installed successfully" -ForegroundColor Green + # Install NuGet package provider if not exists + if (-not (Get-PackageProvider -Name NuGet)) { + Install-PackageProvider -Name NuGet -Force + } + Install-Module DocumentFormat.OpenXml -Scope CurrentUser -Force -AllowClobber + Write-Host "DocumentFormat.OpenXml module installed successfully" -ForegroundColor Green } catch { - Write-Host "Failed to install PnP.PowerShell: $_" -ForegroundColor Red - exit 1 + Write-Host "Failed to install DocumentFormat.OpenXml module: $_" -ForegroundColor Red + Write-Host "You may need to install the Open XML SDK manually." -ForegroundColor Yellow + # Do not exit, as the application might still work if the assembly is in the GAC or a known path } } else { - Write-Host "PnP.PowerShell module is already installed" -ForegroundColor Yellow + Write-Host "DocumentFormat.OpenXml module is already installed" -ForegroundColor Yellow } # Check for Excel installation