не удалось загрузить файл или сборку 'quickfix_net.dll' или одну из ее зависимостей - PullRequest
0 голосов
/ 08 мая 2019

(Позвольте мне сначала извиниться и сказать, что я тщательно изучил этот вопрос, и я знаю, что существует много дискуссий по этому поводу, и я считаю, что я попробовал большинство, если не все предложения без удачи - любая помощь очень ценится)Я постараюсь обобщить это, но я понимаю, что мне, вероятно, придется заполнить некоторые дополнительные детали по вашему запросу.Пожалуйста, будьте терпеливы со мной.

Я создал две программы на C # с использованием VS2017.Оба запускаются в моей среде разработки (Win 10), но только первый запускается в моей производственной среде (Windows Server 2012 R2).Второй получает ошибку, показанную в заголовке.Они обе являются торговыми программами, использующими протокол FIX, которые в основном используют ту же кодовую базу, которая связывает библиотеки FIX, включая quickfix_net.dll.

Я попытался использовать трекер зависимостей, и есть ошибки, но они идентичны между работающей программой и не работающей.

Я использовал fuslogvw, но, очевидно, показывает, что dll вВопрос успешно загружен.

Csproj для обеих программ (работающих и нерабочих) показывает одинаковый относительный путь для извлечения в DLL, и он находится в одном и том же месте в обоих деревьях.

Единственное подозрительное, что я вижу, это то, что первая программа, созданная ранее, показывает целевую архитектуру «смешанных платформ», но эта опция была недоступна, когда была создана вторая программа, которая использует «любой процессор».(Я попытался использовать как x86, так и «Любой ЦП» для сбойного, но безуспешно.

По сути, у меня появилось несколько идей через несколько дней. Если у кого-то есть идея, скажите, пожалуйста, какой код / ​​лог-файлы/ configs или все, что вы хотите увидеть. Заранее благодарны за любую помощь .... спасибо.

дополнение - чтобы упростить описание проблемы, эта программа запускается нормально, находит и загружаетdll на любом настольном компьютере с Windows 10. Он не работает на любой серверной ОС Windows (2012/16 и т. д.), работающей на VPS. Мне просто нужно запустить эту штуку удаленно. Очень признателен за любую помощь, спасибо.

больше информации - я попытался настроить виртуальную машину на Azure, которая имеет полную настольную установку win 10, как на моем ноутбуке, и я все еще получаю сбой при загрузке DLL. Действительно сбивает с толку ...

Нижевывод fuslogvw.exe. Как видите, загрузка сборки выглядит успешно

<strong>* Assembly Binder Log Entry  (5/10/2019 @ 7:38:37 AM) *</strong></p>

<p>The operation was successful. Bind result: hr = 0x0. The operation
completed successfully.</p>

<p>Assembly manager loaded from: 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll Running under
executable 
C:\Trading\Trailer\Trailer\Trailer\bin\x86\Release\Trailer.exe
--- A detailed error log follows. </p>

<p>=== Pre-bind state information === LOG: DisplayName = quickfix_net, Version=1.0.3748.13264, Culture=neutral, PublicKeyToken=null 
(Fully-specified) LOG: Appbase =
file:///C:/Trading/Trailer/Trailer/Trailer/bin/x86/Release/ LOG:
Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base =
NULL LOG: AppName = Trailer.exe Calling assembly : FIXWrapper,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
=== LOG: This bind starts in default load context. LOG: Using application configuration file:
C:\Trading\Trailer\Trailer\Trailer\bin\x86\Release\Trailer.exe.Config
LOG: Using host configuration file:  LOG: Using machine configuration
file from
C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private,
custom, partial, or location-based assembly bind). LOG: Attempting
download of new URL
file:///C:/Trading/Trailer/Trailer/Trailer/bin/x86/Release/quickfix_net.DLL.
LOG: Assembly download was successful. Attempting setup of file:
C:\Trading\Trailer\Trailer\Trailer\bin\x86\Release\quickfix_net.dll
LOG: Entering run-from-source setup phase. LOG: Assembly Name is:
quickfix_net, Version=1.0.3748.13264, Culture=neutral,
PublicKeyToken=null LOG: Binding succeeds. Returns assembly from
C:\Trading\Trailer\Trailer\Trailer\bin\x86\Release\quickfix_net.dll.
LOG: Assembly is loaded in default load context.</p>

<p>

1 Ответ

0 голосов
/ 08 мая 2019

Хотел бы я прокомментировать, но я могу публиковать ответы только до тех пор, пока не наберу достаточно очков. У меня были подобные проблемы при использовании сторонних библиотек. Я обнаружил, что использование любого процессора может вызвать проблемы, если библиотека является 32-битной. На странице свойств проекта проверьте, установлен ли флажок «предпочитать 32-битный» на вкладке «Сборка».

...