【发布时间】:2012-05-03 17:50:48
【问题描述】:
我发誓微软越“进化”Visual Studio,整个过程就会变得越无知。
我有一个包含 3 个类库的 Windows 服务。我进入每个类库的属性并将平台目标设置为 x64。我对 Windows 服务以及我添加以验证所有内容的测试控制台项目做了同样的事情。
我可以在我的 Windows 2008 R2 x64 服务器上毫无问题地运行控制台应用程序,但是愚蠢的安装程序不断地轰炸并告诉我我的图像不好。我确实确保已将安装程序的目标平台设置为 x64。
我不知道这个愚蠢的东西会不会爆炸,并且非常感谢任何见解。我确实引用了其他 DLL,那些可能是 x86,但我认为如果主库设置正确,那么一切都会正常工作......
【问题讨论】:
-
你可能想看看你用来描述这个问题的措辞,因为这完全有可能是你的错误,而不是微软的错。
-
听起来有人架构不匹配...
-
自从我从 90 年代初就开始使用 MS 技术,我认为我有资格证明它的整体实用性迅速下降。
-
至于架构不匹配,我完全同意,但我不知道问题出在哪里。就像我说的那样,我遍历了所有可能的配置选项并将所有内容都设置为 x64。外部 DLL 引用(通过 DLLImport 调用调用)不应影响安装程序。我可以毫无问题地将确切的项目作为控制台应用程序运行,但在尝试安装 Windows 服务时一切都失败了。
-
我读过的所有文档都说了两件事。首先,当强制 Windows 服务进入 x64 模式时,您需要直接从 x64 文件夹引用 .NET DLL,而不是通过 .NET 选项卡,因为这些都是 x86 引用。其次,实际上不建议设置平台,因为如果该选项在目标服务器上可用,该服务将运行 x64。在将所有内容恢复为“任何平台”之前,有人可以验证该服务是否可以在“任何平台”场景下运行 x64 吗?
标签: c# visual-studio-2010 windows-services badimageformatexception