Подтвердить что ты не робот

Добавление библиотеки .NET Framework DLL в качестве ссылки на приложение для магазина Windows

Я работаю над проектом приложения магазина Windows, где я хочу прочитать простые данные измерения температуры из DAQ National Instruments. Однако библиотека DLL для DAQ находится в формате .NETFramework 4.0 и при добавлении этого в качестве ссылки на мой проект приложения для магазина Windows я получаю следующую ошибку: "Цель проекта -".NetFramework, а ссылка на файл - ".NetCore",

Поиск в сети, я выяснил, что приложение для хранения в Windows должно использовать только ссылки на другую библиотеку .NETCore или Portable Library, она не может ссылаться на полную библиотеку .NET 4.0. Я думаю, есть много людей, у которых есть подобные проблемы, поэтому я задаюсь вопросом, есть ли какая-нибудь прогулка вокруг трюков?

4b9b3361

Ответ 1

Если вы застряли в использовании библиотеки, предоставленной кем-то еще, и если попытки лоббировать их для создания переносимой версии вряд ли удастся, то единственное, что вы можете сделать, это найти где-нибудь еще место для размещения DLL, а затем общаться с тем, что его размещает. Например, для некоторых сценариев может быть возможно написать, скажем, службу ASP.NET Web API, которая сможет использовать полную платформу .NET Framework и, таким образом, сможет использовать DLL.

Очевидно, что это касается одной проблемы для другого: теперь вам нужно иметь машину, которая может запускать для вас веб-службу. (И, к сожалению, я считаю, что Microsoft официально не поддерживает запуск этого веб-приложения на том же компьютере, на котором работает приложение Windows Store. Возможно, вы сможете заставить его работать в своем блоке dev, но вы не сможете развернуть его веб-приложение через Windows Store.)

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

Вам может быть проще обратиться к вашему поставщику...

В теории, если так получится, что библиотека не использует ничего за пределами основного профиля .NET, тогда вы можете использовать ILDASM и ILASM для декомпилирования и повторной компиляции кода, преобразования его в переносимую библиотеку перед этим. Однако это может привести к нарушению вашего лицензионного соглашения, если это коммерческий код и, в любом случае, вряд ли сработает.

Ответ 2

"Обходной путь" - это создать версию библиотеки, которую вы хотите использовать в качестве переносной библиотеки. Это все, что есть. У вас просто нет полной версии.

Сложность, связанная с преобразованием библиотеки классов в переносимую библиотеку классов, в значительной степени зависит от того, что делает библиотека, и в каких областях BCL она использует.