Register EPPlus DLL in the GAC

Octopus.Script exported 2020-11-03 by fabiozanella belongs to ‘dll’ category.

This script registers EPPlus dll to the GAC

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Path of the registering dll

RegisteringDllFolderPath = C:\dll

null

Regintering dll path inside NuGet archive

DllPathInExpanded = \lib\net40

null

Dll file name

DllName = EPPlus.dll

null

PackageName = EPPlus

null

Registering dll version

PackageVersion = 4.1.0.0

null

Script body

Steps based on this template will execute the following PowerShell script.

[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")

function Expand-ZIPFile($file, $destination)
{
    $shell = new-object -com shell.application
    $zip = $shell.NameSpace($file)
    foreach($item in $zip.items())
    {
        $shell.Namespace($destination).copyhere($item)
    }
}

$TempFolder = "\TempNupkg"
$ExpandedFolder = "\expanded"

$FileDestinationPath = $RegisteringDllFolderPath + "\" + $DllName 
$FileSourcePath = $RegisteringDllFolderPath + $TempFolder + $ExpandedFolder + $DllPathInExpanded + "\" + $DllName

$TempPath = $RegisteringDllFolderPath + $TempFolder
$NupkgPath = $RegisteringDllFolderPath + $TempFolder + "\temp.zip"
$ExpandedTempPath = $RegisteringDllFolderPath + $TempFolder + $ExpandedFolder

$DllUrl = "https://www.nuget.org/api/v2/package/"+ $PackageName +"/" + $PackageVersion

if (!(Test-Path $ExpandedTempPath -PathType Container)) {
    New-Item -ItemType Directory -Force -Path $ExpandedTempPath
}

Write-Host "Allow SecurityProtocol TLS, TLS 1.1 and TLS 1.2 ..."
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
Write-Host "Dowloading package ..."
Invoke-WebRequest -Uri $DllUrl -OutFile $NupkgPath

Write-Host "Expanding Archive ..."
Expand-ZIPFile –File $NupkgPath –Destination $ExpandedTempPath

Write-Host "Copying to destination folder ..."
Copy-Item $FileSourcePath -Destination $FileDestinationPath

Remove-Item -Recurse -Force $TempPath
Write-Host "Deleteing temp folders ..."

Write-Host "Library Found"

#Note that you should be running PowerShell as an Administrator
Write-Host "Installing to GAC ..."
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall($fileDestinationPath)
Write-Host "Installed to GAC"

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "137d2be3-a329-4c65-bde9-0c062f056889",
  "Name": "Register EPPlus DLL in the GAC",
  "Description": "This script registers EPPlus dll to the GAC",
  "Version": 2,
  "ExportedAt": "2020-11-03T09:07:40.202Z",
  "ActionType": "Octopus.Script",
  "Author": "fabiozanella",
  "Packages": [],
  "Parameters": [
    {
      "Id": "5ee60108-20e4-4010-95cc-c13eb40c618f",
      "Name": "RegisteringDllFolderPath",
      "Label": "Path of the registering dll",
      "HelpText": null,
      "DefaultValue": "C:\\dll",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "4817d840-5b87-4d8b-bdac-53711f093ae4",
      "Name": "DllPathInExpanded",
      "Label": "Regintering dll path inside NuGet archive",
      "HelpText": null,
      "DefaultValue": "\\lib\\net40",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "c5e7cff7-e67d-48a4-adb6-6019d06ba249",
      "Name": "DllName",
      "Label": "Dll file name",
      "HelpText": null,
      "DefaultValue": "EPPlus.dll",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "c326490c-ea29-4b2b-99e7-37027233bd06",
      "Name": "PackageName",
      "Label": "NuGet gallery package name",
      "HelpText": null,
      "DefaultValue": "EPPlus",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "ea04aa17-5fea-4e06-82e8-d344c797547c",
      "Name": "PackageVersion",
      "Label": "Registering dll version",
      "HelpText": null,
      "DefaultValue": "4.1.0.0",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptBody": "[System.Reflection.Assembly]::Load(\"System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\")\n\nfunction Expand-ZIPFile($file, $destination)\n{\n    $shell = new-object -com shell.application\n    $zip = $shell.NameSpace($file)\n    foreach($item in $zip.items())\n    {\n        $shell.Namespace($destination).copyhere($item)\n    }\n}\n\n$TempFolder = \"\\TempNupkg\"\n$ExpandedFolder = \"\\expanded\"\n\n$FileDestinationPath = $RegisteringDllFolderPath + \"\\\" + $DllName \n$FileSourcePath = $RegisteringDllFolderPath + $TempFolder + $ExpandedFolder + $DllPathInExpanded + \"\\\" + $DllName\n\n$TempPath = $RegisteringDllFolderPath + $TempFolder\n$NupkgPath = $RegisteringDllFolderPath + $TempFolder + \"\\temp.zip\"\n$ExpandedTempPath = $RegisteringDllFolderPath + $TempFolder + $ExpandedFolder\n\n$DllUrl = \"https://www.nuget.org/api/v2/package/\"+ $PackageName +\"/\" + $PackageVersion\n\nif (!(Test-Path $ExpandedTempPath -PathType Container)) {\n    New-Item -ItemType Directory -Force -Path $ExpandedTempPath\n}\n\nWrite-Host \"Allow SecurityProtocol TLS, TLS 1.1 and TLS 1.2 ...\"\n[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12\nWrite-Host \"Dowloading package ...\"\nInvoke-WebRequest -Uri $DllUrl -OutFile $NupkgPath\n\nWrite-Host \"Expanding Archive ...\"\nExpand-ZIPFile –File $NupkgPath –Destination $ExpandedTempPath\n\nWrite-Host \"Copying to destination folder ...\"\nCopy-Item $FileSourcePath -Destination $FileDestinationPath\n\nRemove-Item -Recurse -Force $TempPath\nWrite-Host \"Deleteing temp folders ...\"\n\nWrite-Host \"Library Found\"\n\n#Note that you should be running PowerShell as an Administrator\nWrite-Host \"Installing to GAC ...\"\n$publish = New-Object System.EnterpriseServices.Internal.Publish\n$publish.GacInstall($fileDestinationPath)\nWrite-Host \"Installed to GAC\""
  },
  "Category": "dll",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/epplus-register-dll-gac.json",
  "Website": "/step-templates/137d2be3-a329-4c65-bde9-0c062f056889",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Tuesday, November 3, 2020