【问题标题】:Creating custom install for windows service in .NET 3.5在 .NET 3.5 中为 Windows 服务创建自定义安装
【发布时间】:2012-03-18 00:11:28
【问题描述】:

我有一个 Windows 服务和一个应该安装它的自定义控制台安装(除了它所做的其他事情 - 所以我不能使用安装项目中的 .msi 安装)。

代码使用 installutil.exe 进行安装,但 3.5 框架没有这个 exe。如何安装这样的服务? 它需要在 32 位和 64 位以及没有 VS 的机器上运行,只需框架 3.5

(我环顾了网站,找到了几个答案,但没有一个适用于此)

更新: 如果我使用 2.xx 的版本,则会出现异常:

System.BadImageFormatException: 无法加载文件或程序集 xxx 或 它的依赖项之一。此程序集由更新的运行时构建 比当前加载的运行时,无法加载。

【问题讨论】:

    标签: c# windows-services installation


    【解决方案1】:

    3.5 框架有那个应用程序。

    查看目录

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\

    或类似的东西。这就是 installutil.exe 存在于 .NET 3.5 的地方(它使用与 .NET 2 相同的平台,这就是该文件夹被这样调用的原因)。

    所以您应该能够使用该完整路径调用 installutil.exe

    【讨论】:

    • 我同意,但如果我这样做,我会得到异常 System.BadImageFormatException:无法加载文件或程序集 xxx 或其依赖项之一。此程序集由比当前加载的运行时更新的运行时构建,无法加载。将使用此信息更新我的初始问题。
    • @FedorHajdu 您是否尝试过使用 Framework64 文件夹中的InstallUtil.exe?如果您的程序集确实在 .NET 3.5 上,那么这个 installutil 应该会成功。
    • 在你建议之前我没有,但我现在这样做了,它仍然抛出同样的异常。
    【解决方案2】:

    代码使用installutil.exe进行安装,但3.5框架没有这个exe。

    我有一个开箱即用的 .net3.5 安装,它附带 installutil.exe

    看看

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

    记住 .NET3.5 仍然在 .net2 上运行运行时

    【讨论】:

      猜你喜欢
      • 2010-12-05
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 2010-10-23
      • 2011-10-24
      相关资源
      最近更新 更多