为什么我不能安装我的服务(运行时比加载的运行时更新)?

Sup*_*NES 24 .net c# windows-services failed-installation

所以我在C#中构建了一个服务,我正在尝试使用以下命令来安装它:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\installutil.exe MyService.exe >> installLog.txt
Run Code Online (Sandbox Code Playgroud)

它失败.当我查看installLog.txt时,我得到了这个:

Microsoft (R) .NET Framework Installation utility Version 2.0.50727.3053
Copyright (c) Microsoft Corporation.  All rights reserved.

Exception occurred while initializing the installation:
System.BadImageFormatException: Could not load file or assembly 'file:///C:\MyService.exe' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded..
Run Code Online (Sandbox Code Playgroud)

相同的方法适用于安装不同的组件.我觉得可能是因为失败的那个是为.NET 4.0编写的,而有效的是3.5.

有没有人有这个问题的经验?

Dar*_*ten 42

您正在使用错误的installutil.exe如果您的应用程序是针对.Net 4.0构建的.使用4.0文件夹中的installutil.exe.

C:\ WINDOWS\Microsoft.NET\Framework64\v4.0.30319\installutil.exe

  • 小心这一点,因为你必须确保你的目标是x86或x64 - 在这种情况下`...\Framework64\...`不是正确的路径.对于x86,您将使用它:`C:\ Windows\Microsoft.NET\Framework\v4.0.30319\installutil.exe`.如果您尝试为构建使用不正确的体系结构,那么即使框架版本看似正确,您也会收到此错误. (3认同)

Sup*_*NES 25

甚至没人接近这个!

这就是我必须做的事情:

  1. 在Visual Studio中右键单击服务项目,转到"属性"
  2. 将"启动对象"设置为服务名称(已将其设置为值"(未设置)").
  3. 保存.
  4. 建立
  5. 尝试再次安装.
  6. 有用!好极了!我们都可以回家了!

链接到有助于的代码项目文章:


Stu*_*Stu 15

对于那些没有找到解决问题的人,你需要查看.vdproj文件的启动条件并将.NET框架更改为4:http://www.alexjamesbrown.com/uncategorized/deploying-净-4-项目误差-1001-系统badimageformatexception /


小智 5

如果在x64机器上编译,请务必进入Configuration Mgr并将构建更改为x64.当然,您需要检查以确保您使用的是正确版本的InstallUtil.exe.g'luck.


小智 5

对我来说,我右键单击要安装的exe,然后单击“取消阻止”