63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
|
|
using System.Collections.Generic;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Text;
|
|||
|
|
using Microsoft.Deployment.WindowsInstaller;
|
|||
|
|
|
|||
|
|
namespace DimensionTools.AddInDeployer
|
|||
|
|
{
|
|||
|
|
public class CustomActions
|
|||
|
|
{
|
|||
|
|
public const string dllName = "DimensionTools.dll";
|
|||
|
|
public const string addinName = "DimensionTools.addin";
|
|||
|
|
|
|||
|
|
[CustomAction]
|
|||
|
|
public static ActionResult Uninstaller(Session session)
|
|||
|
|
{
|
|||
|
|
session.Log("Begin Uninstaller");
|
|||
|
|
var commonAppDataFolder = session["CommonAppDataFolder"];
|
|||
|
|
var addinFilePath = $"{commonAppDataFolder}\\Autodesk\\DimensionTools.bundle";
|
|||
|
|
Directory.Delete(addinFilePath,true);
|
|||
|
|
return ActionResult.Success;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[CustomAction]
|
|||
|
|
public static ActionResult Installer(Session session)
|
|||
|
|
{
|
|||
|
|
session.Log("Begin Installer");
|
|||
|
|
var manufacturer = session["Manufacturer"];
|
|||
|
|
var productName = session["ProductName"];
|
|||
|
|
var appdir = session["APPDIR"]; //<2F><>װ·<D7B0><C2B7>,<2C><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1>
|
|||
|
|
var sourceDir = session["SourceDir"]; //<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>ѹ·<D1B9><C2B7>
|
|||
|
|
var programFiles64Folder = session["ProgramFiles64Folder"]; //64λ<34><CEBB>װ·<D7B0><C2B7><EFBFBD><EFBFBD>C:\ProgramFiles
|
|||
|
|
var commonAppDataFolder = session["CommonAppDataFolder"]; //C:\ProgramData
|
|||
|
|
var addinFilePath = $"{commonAppDataFolder}\\Autodesk\\DimensionTools.bundle\\Contents";
|
|||
|
|
//List<RevitProduct> revitProductsInstalled = RevitProductUtility.GetAllInstalledRevitProducts();
|
|||
|
|
//foreach (var product in revitProductsInstalled)
|
|||
|
|
//{
|
|||
|
|
//}
|
|||
|
|
List<FileInfo> dlls = new List<FileInfo>();
|
|||
|
|
DirectoryInfo dir = Directory.CreateDirectory(appdir);
|
|||
|
|
StringBuilder sb = new StringBuilder();
|
|||
|
|
foreach (var fileInfo in dir.GetFiles("*", SearchOption.AllDirectories))
|
|||
|
|
{
|
|||
|
|
if (fileInfo.Name == dllName)
|
|||
|
|
{
|
|||
|
|
dlls.Add(fileInfo);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
foreach (var dllPath in dlls)
|
|||
|
|
{
|
|||
|
|
var versionNum = dllPath.Directory.Name;
|
|||
|
|
AddInManager manager = new AddInManager(versionNum, addinName);
|
|||
|
|
|
|||
|
|
manager.CreateApplication("<22><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>", dllPath.FullName, "DimensionTools.UiRibbon");
|
|||
|
|
|
|||
|
|
manager.Uninstall();
|
|||
|
|
manager.Install();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return ActionResult.Success;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|