添加项目文件。

This commit is contained in:
GG Z
2026-02-23 11:05:30 +08:00
commit 1588dc09d1
48 changed files with 4687 additions and 0 deletions

View 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;
}
}
}