Entity Framework 4.1 を参照するデータベース アプリケーションがあります。プロジェクトのプロパティ ウィンドウで、構成とプラットフォームの選択オプションの両方が無効になっています。このアプリケーションを x64 システムだけに限定したくはありません。
また、同じソリューションに他のプロジェクトがいくつかあり、プラットフォームとして x86 オプションしか使用できません。
x64 システムを具体的にターゲットにできなかった理由がわかりません。PCでWindows 7 64ビットを実行しています。
特に x64 ベースのシステムをターゲットにする方法の手がかり。すべてのプロジェクトは .Net Framework 4 を参照しています。
「Any 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].
ここで間違っているかもしれませんが、x64 形式ではないため、Autocad x64 が dll を拒否しているのではないかと強く疑っています。問題の根本はautocadにdllをロードしているためです。Web を検索したところ、AutoCAD は x32 および x64 タイプについて非常にうるさいことがわかりました。Autocad プラグインを開発するためのネイティブ開発環境AutoCAD.netは、x32 および x64 タイプで別々に利用することもできます。x32 で開発されたプラグインが x64 タイプの Autocad バージョンで実行されるとは思いません。そのため、Autocad プラグインのターゲット プラットフォームについて具体的に説明する必要があります。