Visual Studio 2008尝试加载库,我只有一个x64。我得到通常的无效格式消息,因为VS2008是32位。在ASP.NET MVC项目中,意味着视图中没有智能感知。有什么办法可以解决吗?如果没有为了智能感知目的而加载该库,那就不是很重要了。
答案 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我可以看到我不是唯一的。我有时会让它上班,但它比科学还要多。您可以尝试以下方式:
Web.config
中的外部控件,而不是页面内部。答案 2 :(得分:0)
只是看here看到这个......有人试图在vs2008下加载x64bit dll并且遇到类似的情况......可能是你需要x64的可再发行组件包对于VC ++运行时?
希望这有帮助,祝你好运, 最好的祝福, 汤姆。
答案 3 :(得分:0)
我一直在VS.NET 2008下进行x64和32位开发。该程序非常能够加载x64 DLL,但我怀疑你有一个Win32项目,所以你不能加载Win64 DLL。你必须选择64位或32位,你不能在我理解的这一点上混合它们。