Я хочу собрать плагин .... Использую Microsoft Installer Project ... Для корректного действия мне надо создать XAML файл во время установки (Код ниже) класс создаю в "Главной библиотеке" Vitruvius BIM .... после создаю проект для установки
При установке с пустой Castom Action
- все работает
но с Actions Castum(картинка вверху) при установке получаю
В чем причина такого поведения?
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.IO;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Windows;
using System.Xml.Linq;
namespace Vitruvius_BIM
{
[RunInstaller(true)]
public partial class Installer : System.Configuration.Install.Installer
{
public Installer()
{
InitializeComponent();
}
string myAddinDLL = "Vitruvius_BIM";
public override void Uninstall(System.Collections.IDictionary stateSaver)
{
string sDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Autodesk\\Revit\\Addins";
bool exists = System.IO.Directory.Exists(sDir);
if (exists)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
//DirSearch.Add(d);
File.Delete(d + "\\" + myAddinDLL + ".addin");
}
}
catch (System.Exception excpt)
{
System.Windows.Forms.MessageBox.Show(excpt.Message);
}
}
}
public override void Install(System.Collections.IDictionary stateSaver)
{
MessageBox.Show("hello");
string sDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Autodesk\\Revit\\Addins";
bool exists = System.IO.Directory.Exists(sDir);
if (!exists) System.IO.Directory.CreateDirectory(sDir);
XElement XElementAddIn = new XElement("AddIn", new XAttribute("Type", "Application"));
XElementAddIn.Add(new XElement("Name", myAddinDLL));
XElementAddIn.Add(new XElement("Assembly", this.Context.Parameters["targetdir"].Trim() + myAddinDLL + ".dll")); // /TargetDir=value1 /
XElementAddIn.Add(new XElement("AddInId", Guid.NewGuid().ToString())); //DatabaseMethods.writeDebug(Guid.NewGuid().ToString());
XElementAddIn.Add(new XElement("FullClassName", myAddinDLL + ".ThisApplication"));
XElementAddIn.Add(new XElement("VendorId", "01"));
XElementAddIn.Add(new XElement("VendorDescription", "FOP Hutsaliuk Andrii Victorovich, Telegram @and13"));
XElement XElementRevitAddIns = new XElement("RevitAddIns");
XElementRevitAddIns.Add(XElementAddIn);
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
//DirSearch.Add(d);
new XDocument(XElementRevitAddIns).Save(d + "\\" + myAddinDLL + ".addin");
//files.AddRange(DirSearch.Add(d));
}
}
catch (System.Exception excpt)
{
System.Windows.Forms.MessageBox.Show(excpt.Message);
}
}
}
}