TypeLoadException Использование сборки VB.net в ASP.net Core 2 API - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь перевести устаревший проект ASP.net VB Webforms в проект ASP.net Core 2 API.

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

TypeLoadException: Could not load type 'Microsoft.VisualBasic.DateAndTime' from assembly 'Microsoft.VisualBasic, Version=10.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Существует несколько переменных, которые передаются ему, одна из которых - DateTime.

DateTime dateIn = new DateTime(2018, 5, 7);
DateTime dateOut = new DateTime(2018, 5, 20);

Я развернул простой проект веб-форм на C #, добавил сборку и таким же образом ссылался на код, он работает и возвращает правильное значение, ему просто не нравится среда .net core 2.

Я нашел другие подобные вопросы, но ответы, похоже, не связаны: System.TypeLoadException Microsoft.VisualBasic ASP.NET Core 2

Идеи с чего начать?

Обновление 1

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

Новый вопрос / идея : Можно ли как-нибудь скомпилировать текущую DLL как некий exe или com объект и взаимодействовать с ним вне уровня .NET Core и только на уровне ОС? (Надеюсь, я объясняю это правильно. Я понимаю, что это нарушит кроссплатформенную совместимость, но это может решить проблему в краткосрочной перспективе, чтобы помочь вывести проект на улицу, и тогда можно будет посвятить время переписыванию проблемная сборка.)

1 Ответ

0 голосов
/ 21 мая 2018

Примечание для тех, кто попадет на этот пост в будущем.

Пока я завернул сборку VB.Net в базовую службу WCF. Учитывая, что эта сборка является «черным ящиком», в который отправляются запросы и она возвращает ответ, она пригодна для работы в службе WCF.

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

Примечание: я еще не проверял это в производстве. - Я предоставлю обновление, когда я сделаю.

...