Проект настраиваемого действия WiX - BadImageFormatException - PullRequest
3 голосов
/ 08 июня 2011

Я разрабатываю свое первое пользовательское действие, но не могу загрузить полученный файл .CA.dll.Вот процесс в самом простом, и результат:

Я создаю проект настраиваемого действия и сохраняю все значения по умолчанию.Класс выглядит следующим образом:

using Microsoft.Deployment.WindowsInstaller;
namespace CustomAction
{
public class CustomActions
{
[CustomAction]
    public static ActionResult CustomAction1(Session session)
    {
        session.Log("Begin CustomAction1");

        return ActionResult.Success;
    }
}
}

Затем я собираю сборку (в отладке или в выпуске), которая создает мне файл CustomAction.CA.dll.Затем я пытаюсь запустить этот тест:

[TestMethod]
    public void LoadAssembly()
    {
        Assembly.LoadFrom(@"D:\CustomAction\bin\Debug\CustomAction.CA.dll");
    }

и получаю ошибку: System.BadImageFormatException: Не удалось загрузить файл или сборку 'file: /// D: \ CustomAction \ bin \ Debug \ CustomAction.CA.dll 'или одна из его зависимостей.Модуль должен содержать манифест сборки.

Также я не могу ссылаться на пользовательское действие из моего проекта WiX.Очень расстраиваюсь!

Редактировать: Посмотрел, и когда я бегу через менеджер тестов VS, я получаю в журнале событий приложения следующее:
TmiDataManager.TryConvertPropertyValueToDisplayText: Не удалось преобразовать значение свойства с помощью свойствапреобразователь типа дескриптора.System.FormatException: входная строка была не в правильном формате.
в System.Number.StringToNumber (String str, NumberStyles, NumberBuffer & number, NumberFormatInfo info, логический parseDecimal)
в System.Number.ParseInt32 (String s, Стиль NumberStyles, информация NumberFormatInfo)
в System.String.System.IConvertible.ToInt32 (поставщик IFormatProvider)
в System.Convert.DefaultToType (значение IConvertible, тип targetType, поставщик IFormatProvider)
в System.String.System.IConvertible.ToType (Тип типа, поставщик IFormatProvider)
в System.ComponentModel.EnumConverter.ConvertTo (контекст ITypeDescriptorContext, культура CultureInfo, значение объекта, тип destinationType)
в объекте System.ComponentModel.значение) "

Дальнейшее редактирование: я могу загрузить обычный файл CustomAction.dll через Assembly.LoadFrom, так что, возможно, это проблема, отличная от вещи BadImageFormat? Может ли быть какая-либо причина пустым действием без дальнейших зависимостей?не удалось загрузить в мой проект WiX?

1 Ответ

3 голосов
/ 08 июня 2011

CustomAction.CA.dll - это библиотека DLL с собственным кодом, которая содержит сборку управляемого кода и знает, как запускать в MSI как настраиваемое действие. Сборка управляемого кода - "CustomAction.dll."

...