InstallUtil throw错误消息

时间:2010-11-08 05:49:31

标签: c#

尝试在W7 64位上运行,在Visual C#2008 Express上使用.Net 3.5,我尝试在Framework和Framework64文件夹中运行installutil.exe,两者都抛出相同的错误。 3.5文件夹没有installutil.exe,两个文件夹中的4.0也不起作用。

在IDE中,没有Release版本,但是Publish,它们是否相同?

我遵循本文的教程: http://www.switchonthecode.com/tutorials/creating-a-simple-windows-service-in-csharp

可能出现什么问题?

D:\install>C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe setup.e
xe
Microsoft (R) .NET Framework Installation utility Version 2.0.50727.4927
Copyright (c) Microsoft Corporation.  All rights reserved.

Exception occurred while initializing the installation:
System.BadImageFormatException: Could not load file or assembly 'file:///D:\inst
all\setup.exe' or one of its dependencies. The module was expected to contain an
 assembly manifest..

3 个答案:

答案 0 :(得分:4)

当您尝试在32位上下文中加载64位程序集或本机dll时,通常会发生System.BadIMageFormatException,反之亦然。

如果您在64位版本的Windows上运行,则还有一个目录c:\windows\Microsoft.Net\Framework64\。尝试在那里的一个子目录中找到的installutil。

另一个可能的问题是您针对错误的程序集(.exe或.dll)运行InstallUtil。您正在对setup.exe运行它。在您所指的教程中,没有明确的安装程序。 InstallUtil针对MyWindowsService.exe运行。在本教程中,您将创建一个使用System.Configuration.Install命名空间的程序。 InstallUtil使用该命名空间中的属性[RunInstaller(true)]来查找程序集中的“安装说明”,因此不需要单独的安装程序(setup.exe)。

您是否尝试过首先使用本教程,然后使用您自己的代码扩展它?

答案 1 :(得分:3)

在.NET 4中构建Windows服务并尝试使用.NET v2目录中的installutil.exe进行安装时遇到的问题。您必须使用.NET v4目录中的installutil.exe(Windows / Microsoft .NET / Framework / v4.0.30319 / installutil.exe)

答案 2 :(得分:0)

这太老了,但现在我在执行此操作时仍然遇到一些麻烦,并且其他具有相同答案的线程对我没有帮助,因此我认为这必须是答案(版本冲突)。

我太傻了,看不到我的错误,我的.exe文件路径在其中一个文件夹中有一个空格(用户名有2个用空格隔开的名称),我要做的就是用到“。”和。问题之间的.exe文件的路径已修复。只是有人像我一样遇到了这个问题。