【问题标题】:Installer class apparently not being called安装程序类显然没有被调用
【发布时间】:2009-09-08 16:11:27
【问题描述】:

我正在按照本教程自定义 Web 设置项目。 http://msdn.microsoft.com/en-us/library/aa289522(VS.71).aspx 但是,我正在使用 Visual Studio 中已有的 Web 应用程序。 所以他们的部分解决方案是在我自己的 Web 项目中创建一个安装程序类。当我选择“添加新项目”时,我实际上在对话框中看不到“安装程序类”选项。
因此,我添加了自己的类,引用了“System.Configuration.Install”并扩展了 .net 安装程序类。 我的问题是,在 web 设置项目中,我自己的安装程序,根据上面链接中的说明,实际上应该被调用,但没有被调用。

关于我做错了什么有什么想法吗?

【问题讨论】:

    标签: asp.net installation web-setup-project


    【解决方案1】:

    您需要在安装程序上具有[RunInstaller(true)] 属性,并且需要在安装过程中触发 .NET 安装程序,或者通过 vdproj 安装程序中的自定义安装程序步骤(请参阅“自定义操作”选项卡),或使用installutil

    一个快速而肮脏的健全性检查是向您的安装程序添加一个 MessageBox 以查看它是否正在运行(尽管让日志正常工作值得理解,否则您也需要一个痛苦的世界)

    【讨论】:

    • @Lamps:很高兴听到这个消息——你无法击败 printfs,而且 MessageBox 会比蟑螂活得更久。只需记住在具有[Conditional("DEBUG")] 属性的方法中通常提取“当我弄清楚”之类的东西,这样它就不会像stackoverflow.com/questions/3477364/… 那样进入生产环境。 (尽管带有 TDD 故事的安装程序系统会克服整个 MSI 的痛苦!)
    • 如果可以的话,我会给你+10。我永远不会发现“触发......”部分。我确信,这会自动发生。感谢您让我知道得更好。
    • @Marcel:很高兴互联网帮助了你!如果您阅读了托管安装程序和 Wix 等内容,您很快就会发现托管安装程序被认为是可怜的继子,并且默认情况下不会调用它们会让您感到惊讶......安装程序团队会更喜欢如果一切是自上而下的声明性 MSI 操作 - 他们不必生活在现实世界中真是太好了!
    • @RubenBartelink 我最终创建了一个用户首先执行的批处理文件(安装我的先决条件,实际上是 Java 运行时)然后调用我的 .NET 应用程序的 setup.exe。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2019-11-19
    • 2022-07-11
    • 2019-08-05
    • 2019-01-19
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多