gpt4 book ai didi

deployment - WiX 自定义操作项目 - BadImageFormatException

转载 作者:行者123 更新时间:2023-12-03 10:05:03 26 4
gpt4 key购买 nike

我正在开发我的第一个自定义操作,但无法加载生成的 .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”或其依赖项之一。该模块应包含程序集 list 。

我也不能从我的 WiX 项目中引用自定义操作。变得非常沮丧!

编辑:看了一下,当我运行 VS 测试管理器时,我在应用程序事件日志中得到以下信息:
TmiDataManager.TryConvertPropertyValueToDisplayText:无法使用属性描述符的类型转换器转换属性值。 System.FormatException: 输入字符串的格式不正确。
在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean 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.TypeConverter.ConvertToString(对象值)”

进一步编辑:我可以通过 Assembly.LoadFrom 加载正常的 CustomAction.dll,所以也许这与 BadImageFormat 问题不同?没有进一步依赖项的空白操作是否有任何原因无法加载到我的 WiX 项目中?

最佳答案

CustomAction.CA.dll 是包含托管代码程序集的 native 代码 DLL,并且知道如何在 MSI 中作为自定义操作运行。托管代码程序集是“CustomAction.dll”。

关于deployment - WiX 自定义操作项目 - BadImageFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com