While working on PSWriteExcel on Ubuntu / Mac OS I've noticed that my -AutoFit method for ConvertTo-Excel was crashing. I couldn't reproduce same behavior on PowerShell Core on Windows so it must be something with how Ubuntu / Mac OS deals with it. The error I was getting:
Failed AutoFit with error message: Exception calling „AutoFitColumns” with „0” argument(s): „The type initializer for 'Gdip' threw an exception.”
It seems the issue is known and reported on GitHub. Until then… you need to work with workaround as below..
💡 How can I fix it?
To fix this you need to run following commands and install or update libgdiplus.
apt install -y libc6-dev apt install -y libgdiplus
On Mac OS it's a almost the same with the difference of using brew
brew install mono-libgdiplus
After this little update.. no more errors
If you're working with Azure DevOps change required to Mac OS looks like this (surprisingly Ubuntu doesn't have this error)
jobs: - job: Build_PS_Win2016 pool: vmImage: vs2017-win2016 steps: - powershell: | Install-Module -Name Pester -Repository PSGallery -Force -SkipPublisherCheck .\PSWriteExcel.Tests.ps1 -Verbose displayName: 'Run Pester Tests' - job: Build_PSCore_Ubuntu1604 pool: vmImage: ubuntu-16.04 steps: - script: | curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft.list sudo apt-get update sudo apt-get install -y powershell displayName: 'Install PowerShell Core' - script: | pwsh -c '.\PSWriteExcel.Tests.ps1' displayName: 'Run Pester Tests' - job: Build_PSCore_MacOS1013 pool: vmImage: xcode9-macos10.13 steps: - script: | brew update brew tap caskroom/cask brew install mono-libgdiplus brew cask install powershell displayName: 'Install PowerShell Core' - script: | pwsh -c '.\PSWriteExcel.Tests.ps1' displayName: 'Run Pester Tests'
If you're working with Travis updated .travis.yml looks like this which covers both Ubuntu and Mac OS
language: generic matrix: include: - os: osx osx_image: xcode9.1 before_install: - brew update - brew tap caskroom/cask - brew install mono-libgdiplus - brew cask install powershell - os: linux dist: trusty sudo: required addons: apt: sources: - sourceline: deb [arch=amd64] https://packages.microsoft.com/ubuntu/14.04/prod trusty main key_url: https://packages.microsoft.com/keys/microsoft.asc packages: - libc6-dev - libgdiplus - powershell script: - pwsh -c 'Install-Module Pester -Force -Scope CurrentUser; .\PSWriteExcel.Tests.ps1'