C# программа может работать на ноутбуке разработчика, но не может на другом - PullRequest
1 голос
/ 24 января 2020

В течение последних 6 месяцев я разрабатывал приложение Windows для прохождения практики. Эта программа работает так, как должна работать на ноутбуке, где она запрограммирована, но мне нужно установить программу на другом ноутбуке. Я установил ту же самую базовую версию do tnet (3.0.100) и запустил .exe со всеми необходимыми DLL-библиотеками в том же каталоге (как он скомпилирован). Но когда я делаю это, я получаю ошибку, показанную ниже.

[ERROR][1/23/2020 7:58:41 PM][Thread 0006][akka://ModulairVisionFramework/user/InterfaceCameraActor] Error while creating actor instance of type CameraSystem.InterfaceCameraActor with 0 args: ()
Cause: [akka://ModulairVisionFramework/user/InterfaceCameraActor#1923472091]: Akka.Actor.ActorInitializationException: Exception during creation
 ---> System.TypeLoadException: Error while creating actor instance of type CameraSystem.InterfaceCameraActor with 0 args: ()
 ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.BadImageFormatException: Could not load file or assembly 'VimbaNET, Version=1.8.0.27270, Culture=neutral, PublicKeyToken=96b729f24f119b9a'. An attempt was made to load a program with an incorrect format.
File name: 'VimbaNET, Version=1.8.0.27270, Culture=neutral, PublicKeyToken=96b729f24f119b9a'
   at CameraSystem.InterfaceCameraActor..ctor()

   --- End of inner exception stack trace ---
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& hasNoDefaultCtor)
   at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Akka.Actor.Props.ActivatorProducer.Produce()
   at Akka.Actor.Props.NewActor()
   --- End of inner exception stack trace ---
   at Akka.Actor.Props.NewActor()
   at Akka.Actor.ActorCell.CreateNewActorInstance()
   at Akka.Actor.ActorCell.<>c__DisplayClass109_0.<NewActor>b__0()
   at Akka.Actor.ActorCell.UseThreadContext(Action action)
   at Akka.Actor.ActorCell.NewActor()
   at Akka.Actor.ActorCell.Create(Exception failure)
   --- End of inner exception stack trace ---
   at Akka.Actor.ActorCell.Create(Exception failure)
   at Akka.Actor.ActorCell.SysMsgInvokeAll(EarliestFirstSystemMessageList messages, Int32 currentState)

[INFO][1/23/2020 7:58:44 PM][Thread 0008][akka://ModulairVisionFramework/user/InterfaceCameraActor] Message Initialize from akka://ModulairVisionFramework/user/FrameworkActor to akka://ModulairVisionFramework/user/InterfaceCameraActor was not delivered. 1 dead letters encountered.

Эта ошибка System.BadImageFormatException: Could not load file or assembly дает мне идею, что я могу использовать неправильную DLL-библиотеку VimbaNET, но я на 100% уверен, что Я использую правильный. Если я использую неправильную библиотеку DLL VimbaNET, я получаю ту же ошибку, что и выше, но я также получаю ошибку, если использую правильную библиотеку DLL. Я также пытался скомпилировать приложение на новом ноутбуке с той же IDE, но результат тот же.

Оба ноутбука 64-битные.

Кто-нибудь знает, как я могу решить эта проблема?

32-битная версия моего приложения выдает ту же ошибку.

Настройки, которые я использую для компиляции и запуска программы в 64-битной среде. enter image description here

Настройки, которые я использую для компиляции и запуска программы в 32-битной версии. enter image description here

сборка Информация обо всех 3 сборках, которые вовлечены в проблему.

Vimb aNET - это DLL, которая вызывает проблемы

CameraSystem - это моя собственная сборка, в которой используется Vimb aNET

ModulairVisionFramework - это основное приложение, использующее сборку CameraSystem enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...