Держи оружие! Я проверил, все ли выходы проекта настроены на одну и ту же архитектуру процессора (в данном случае x64). Они есть. Так что я пытаюсь сделать?
- Написал плагин для Autodesk Revit Architecture 2011 x64
- Создан проект установки
- Создано пользовательское действие (
RegisterRevit2011Addin
) для регистрации плагина в Revit с использованием прилагаемой библиотеки DLL (RevitAddInUtility.dll
)
- добавлено настраиваемое действие для настройки проекта, сборки, установки
Это сообщение об ошибке, которое я получаю:
Ошибка 1001. Исключительная ситуация при инициализации установки:
System.BadImageFormatException: не удалось загрузить файл или сборку
'RegisterRevit2011, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль' или единица
его зависимостей. Была предпринята попытка загрузить программу с неверным форматом.
Просто чтобы быть уверенным, я создал простое консольное тестовое приложение:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var register = new RegisterRevit2011Addin.RegisterAddinCustomAction();
Console.WriteLine(register);
register.Context = new System.Configuration.Install.InstallContext();
register.Context.Parameters.Add("assemblypath", typeof(Program).Assembly.Location);
register.Install(new Dictionary<string, string>());
Console.ReadLine();
}
}
}
Я скомпилировал этот таргетинг на x64 и .NET 3.5 - вуаля, все работает! Теперь я могу предположить, что ошибка лежит где-то в проекте установки. Я установил целевую платформу в свойствах программы установки, а также установил условие запуска 3.5.
Интересно: когда я проверяю полученный setup.exe
с dumpbin /headers
, он сообщает мне, что это процесс x86!
Я почти уверен, что все это работало позавчера, поэтому я немного обеспокоен, что каким-то образом испортил свою систему. Есть идеи?