【问题标题】:how to write custom action for a c# installer in visual studio 2010?如何在 Visual Studio 2010 中为 c# 安装程序编写自定义操作?
【发布时间】:2011-06-09 05:42:15
【问题描述】:

我正在为 64 位计算机在 Visual Studio 2010 中编写安装程序。我在安装过程中使用自定义操作来获取CheckBox 的值。

自定义Action如下:

/cbvalue="[CHECKBOXA1]"

在我的安装程序类中,我添加了以下代码来获取参数:

string myInput = Context.Parameters["cbvalue"];

安装项目构建成功,但是当我尝试安装安装文件时,在安装过程中,它给出了以下错误:

错误:1001 System.BadImageFormatException.could not load an assembly.....

当我在不添加自定义操作的情况下尝试此操作时,它会正确安装。 而且我还想找到一种调试设置项目的方法。

【问题讨论】:

标签: c# visual-studio-2010 installation setup-project custom-action


【解决方案1】:

你有没有在Install()中添加自定义参数,像这样:

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
   base.Install(stateSaver); 
   stateSaver.Add("cbvalue", Context.Parameters["cbvalue"].ToString()); 
}

所以你应该有这样的东西:

public override void Commit(System.Collections.IDictionary savedState) 
{ 
   base.Commit(savedState); 
   System.Windows.Forms.MessageBox(savedState["bcvalue"].ToString());    
}

【讨论】:

  • 非常感谢您的快速帮助。我试过了。但仍然遇到同样的错误。
【解决方案2】:

如果您使用自定义操作创建 64 位安装程序,请始终记住您会收到此错误,因为自定义操作始终使用 x86 架构构建,您需要使用相同的自定义操作,然后使用 ORCA 工具编辑您的 msi 参见 @ 987654321@ 做同样的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多