Visual Studio无法加载x64库并中断intellisense

时间:2010-01-07 11:31:11

标签: visual-studio-2008

Visual Studio 2008尝试加载库,我只有一个x64。我得到通常的无效格式消息,因为VS2008是32位。在ASP.NET MVC项目中,意味着视图中没有智能感知。有什么办法可以解决吗?如果没有为了智能感知目的而加载该库,那就不是很重要了。

4 个答案:

答案 0 :(得分:1)

获取DLL的32位和64位版本 如果两者都不可用,请询问供应商,或者库是否是开源的,请自行编译。

注意:如果您自己编译,请确保它们是强签名的。如有必要,请创建自己的密钥。

然后将两个版本的DLL添加到GAC。

重启VS.可能是,重新启动计算机,或者将其关闭并在街区内走动。

这对我有用。

答案 1 :(得分:0)

我怀疑问题不在于它是x64,因为即使在引用x64-only程序集时,IntelliSense在控制台应用程序中也一直很好用。 Visual Studio实际上不需要运行程序集来获取IntelliSense数据 - 它只需要使用Reflection检查它。如果您尝试运行执行以下操作的32位EXE,则可以自己查看:

string dllPath = "<path to 64-bit DLL";
System.Reflection.Assembly.ReflectionOnlyLoadFrom(dllPath); // Success
System.Reflection.Assembly.LoadFrom(dllPath); // BadImageFormatException

更有可能的是,ASP.NET IntelliSense加载任何程序集只是一个问题。根据我的经验,ASP.NET中的IntelliSense在引用程序集方面非常有气质 - 并且搜索SO我可以看到我不是唯一的。我有时会让它上班,但它比科学还要多。您可以尝试以下方式:

  • 关闭所有打开的ASP文件,清理解决方案,重建。
  • 删除引用的,清洁的解决方案并重新添加
  • 引用Web.config中的外部控件,而不是页面内部。
  • 在SO和MSDN论坛上搜索有关ASP.NET IntelliSense问题的帖子,看看其他人提出了什么

答案 2 :(得分:0)

只是看here看到这个......有人试图在vs2008下加载x64bit dll并且遇到类似的情况......可能是你需要x64的可再发行组件包对于VC ++运行时?

希望这有帮助,祝你好运, 最好的祝福, 汤姆。

答案 3 :(得分:0)

我一直在VS.NET 2008下进行x64和32位开发。该程序非常能够加载x64 DLL,但我怀疑你有一个Win32项目,所以你不能加载Win64 DLL。你必须选择64位或32位,你不能在我理解的这一点上混合它们。