我有一个引用 Entity Framework 4.1 的数据库应用程序。在项目的属性窗口中,配置和平台选择选项都被禁用。我不想将此应用程序仅针对 x64 系统。
在同一解决方案中还有一些其他项目,它们只有 x86 选项可用作平台。
我不明白为什么我不能专门针对 x64 系统。我的电脑上运行的是 Windows 7 64 位。
任何线索如何专门针对基于 x64 的系统。所有项目都参考 .Net Framework 4。
仅显示“任何 CPU”选项的项目屏幕截图
编辑 1:为什么我需要针对 x64 系统。
实际上,我正在开发的 dll 必须在 Autocad x64 系统中加载。但是,当我尝试将 dll 加载到 Autocad 中时,它会拒绝 dll,并出现以下错误
NETLOAD Cannot load assembly. Error details: System.BadImageFormatException:
Could not load file or assembly
'file:///D:\RailwayProjects\RelayAnalysis_New\RelayAnalysis_Autocad\bin\Debug\Gl
obalArea.dll' or one of its dependencies. An attempt was made to load a program
with an incorrect format.
File name:
'file:///D:\RailwayProjects\RelayAnalysis_New\RelayAnalysis_Autocad\bin\Debug\Gl
obalArea.dll'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile,
Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm
hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks,
StackCrawlMark& stackMark)
at System.Reflection.Assembly.LoadFrom(String assemblyFile)
at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
at loadmgd()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure
logging.
To turn this feature off, remove the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog].
我强烈怀疑 Autocad x64 拒绝 dll,因为它不是 x64 格式,尽管我在这里可能错了。所以现在我将问题的范围扩大到包括 AutoCAD,因为问题的根源是在 AutoCAD 中加载 dll。我在网上搜索了一下,发现 AutoCAD 对 x32 和 x64 类型非常挑剔。用于开发 Autocad 插件的原生开发环境AutoCAD.net也可在 x32 和 x64 类型下单独使用,我认为使用 x32 开发的插件不会在 x64 类型的 Autocad 版本中运行,反之亦然。所以,我需要具体说明 Autocad 插件的目标平台