現在の構成は
main : TargetFrameWork:net5.0
Google.OrTools: Version 8.2.8710 (Nugetで入れた)
VisualStudio2019
です。
自分のメインPCでは問題なく実行できているのですが、メインPC上で作成したexeファイルをまっさらな仮想環境上(.Net5.0のランタイムはインストールした)で実行した場合、
Unhandled exception. System.TypeInitializationException: The type initializer for 'Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE' threw an exception.
---> System.TypeInitializationException: The type initializer for 'SWIGExceptionHelper' threw an exception.
---> System.DllNotFoundException: Unable to load DLL 'google-ortools-native' or one of its dependencies: 指定されたモジュールが見つかりません。 (0x8007007E)
at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_operations_research_linear_solver(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate)
at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper..cctor()
--- End of inner exception stack trace ---
at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.SWIGExceptionHelper..ctor()
at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE..cctor()
--- End of inner exception stack trace ---
at Google.OrTools.LinearSolver.operations_research_linear_solverPINVOKE.Solver_CreateSolver(String jarg1)
at Google.OrTools.LinearSolver.Solver.CreateSolver(String solver_id)
と表示されます。
あまりフレームワークなどの違い(Standard, Core .NetFramework)などもよくわかっていない状況なのですが、どのようにすれば仮想環境上で実行できるのでしょうか?
また、メインPC上でも以下の警告が出ています(ただし実行はできる)
NU1701 パッケージ 'Google.OrTools.runtime.win-x64 8.2.8710' はプロジェクトのターゲット フレームワーク 'net5.0' ではなく '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。
MSB3270 構築されているプロジェクトのプロセッサ アーキテクチャ "MSIL" と、参照 "C:\Users\User.nuget\packages\google.ortools\8.2.8710\lib\netstandard2.1\Google.OrTools.dll" のプロセッサ アーキテクチャ "AMD64" の間には不一致がありました。この不一致は、ランタイム エラーを発生させる可能性があります。プロジェクトと参照の間でプロセッサ アーキテクチャが一致するように、構成マネージャーを使用してターゲットとするプロジェクトのプロセッサ アーキテクチャを変更するか、ターゲットとするプロジェクトのプロセッサ アーキテクチャに一致するプロセッサ アーキテクチャとの依存関係を参照で設定することを検討してください。C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets
追記:
また内部ではC#8.0以上の機能を使用しているため、.NetFrameWorkのテンプレートでは本体が動きません。現状、何故かうまく共存できているのでこれを仮想環境上で再現するにはどうすればよいのかということをご教示いただければ幸いです
回答2件
あなたの回答
tips
プレビュー