64位系统编译执行时发生System.IO.FileNotFoundException异常的一个情况

Categories: 未分类
Comments: Comments Off
Published on: 2010 年 04 月 30 日

今天在把CSDN论坛的企业服务项目升级成VS2010时,碰到一个问题。 这个企业服务部署时候,会报如下错误:

在“安装”阶段发生异常。
System.IO.FileNotFoundException: 未能加载文件或程序集“Interop.COMAdmin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cdde601ea7585548”或它的某一个依赖项。系统找不到指定的文件。

正在开始安装的“回滚”阶段。

但是这个文件明明是存在的呀。经过装配脑袋的提醒:有可能是64位的问题,64位找32位的文件,或者32位找64位的文件,就会发生找不到文件的情况。

我的操作系统是Win2008 R2,这是一个64位的操作系统。经过测试,Visual Studio 编译.NET 项目时,默认选择的使用平台(Platform target)是 Any CPU, 如下图项目的设置:

image

这时候,调用 64位的 Interop.COMAdmin 就会报错。

我把 Platform target 改成 x64 ,重新编译并发布,就没有问题了。 当然,对我的操作系统 Win2008 R2 来说, 这里选择Any CPU,X86都会报错的。

Comments are closed.

Welcome , today is 星期一, 2017 年 09 月 25 日