添加项目文件。
This commit is contained in:
63
DimensionTools.AddInDeployer/CustomAction.cs
Normal file
63
DimensionTools.AddInDeployer/CustomAction.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
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"]; //安装路径,根据用户选择
|
||||
var sourceDir = session["SourceDir"]; //安装包解压路径
|
||||
var programFiles64Folder = session["ProgramFiles64Folder"]; //64位安装路径,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("标注工具", dllPath.FullName, "DimensionTools.UiRibbon");
|
||||
|
||||
manager.Uninstall();
|
||||
manager.Install();
|
||||
}
|
||||
|
||||
return ActionResult.Success;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user