80 lines
2.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
namespace Intel.Management.PSModule
{
/// <summary>
/// version 2.0 x86 Product code: {71C2B773-86A2-4A82-98B4-43F1144C757C}
/// version 2.0 x64 Product code {FFBD0BEE-D652-444B-8780-771EB1FD652F}
/// </summary>
[RunInstaller(true)]
public partial class DriveInstaller : Installer
{
/// <summary>
///
/// </summary>
public DriveInstaller()
{
InitializeComponent();
}
override public void Install(IDictionary stateSaver)
{
string name = "PSModulePath";
string path = string.Empty;
if (Context.Parameters.ContainsKey("assemblypath"))
{
string value = Environment.GetEnvironmentVariable(name);
if (value == null) value=string.Empty;
//This should be to the module directory
path = System.IO.Path.GetDirectoryName(Context.Parameters["assemblypath"]);
path = System.IO.Path.GetDirectoryName(path);
if (value != null && !value.Equals(string.Empty))
{
value = value + ";" + path;
}
else
{
value = path;
}
Environment.SetEnvironmentVariable(name, value,EnvironmentVariableTarget.Machine);
}
}
override public void Uninstall(IDictionary stateSaver)
{
try
{
string name = "PSModulePath";
string value = Environment.GetEnvironmentVariable(name);
if (value != null && !value.Equals(string.Empty) && Context.Parameters.ContainsKey("assemblypath"))
{
string path = System.IO.Path.GetDirectoryName(Context.Parameters["assemblypath"]);
path = System.IO.Path.GetDirectoryName(path);
value = value.Replace(";" + path, string.Empty);
value = value.Replace(path, string.Empty);
Environment.SetEnvironmentVariable(name, value,
EnvironmentVariableTarget.Machine);
}
}
catch
{
}
}
}
}// namespace