Одна из наших библиотек классов использует пространственные типы Microsoft, такие как DbGeography. При запуске нашего приложения на чистой машине без старых версий SQL Server и Visual Studio, мы получим это исключение:Как использовать SqlServer.Types/пространственные типы в приложении ASP.NET Core 1.0
Пространственные типы и функции недоступны для этого поставщика потому сборки «Microsoft.SqlServer.Types» версии 10 или выше не удалось найти.
Решение, по-видимому, чтобы установить этот NuGet пакет:
Install-Package Microsoft.SqlServer.Types
После установки пакета NuGet дает инструкции о том, как ссылаться на библиотеки DLL из каждого типа проекта:
Чтобы развернуть приложение, которое использует пространственные типы данных для машины, на которой не установлены «Системные CLR-типы для SQL Server», вам также необходимо развернуть собственную сборку SqlServerSpatial110.dll.
Оба x86 (32-разрядных) и 64-разрядных версии этой сборки были добавлены в ваш проект под подкаталогами SqlServerTypes \ x86 и SqlServerTypes \ x64. Собственная сборка msvcr100.dll также включена в случае, если среда выполнения C++ не установлена.
Вам нужно добавить код для загрузки правильной одной из этих сборок во время выполнения (в зависимости от текущей архитектуры).
приложений ASP.NET для приложений ASP.NET, добавьте следующую строку кода в методе Application_Start в Global.asax.cs: SqlServerTypes.Utilities.LoadNativeAssemblies (Server.MapPath ("~/бен")) ;
Настольные приложения для настольных приложений, добавьте следующую строку кода для запуска, прежде чем какие-либо пространственные операции: SqlServerTypes.Utilities.LoadNativeAssemblies (AppDomain.CurrentDomain.BaseDirectory);
NuGet сайт пакет проектов не отвечает на запросы, так что я не уверен, что это лучший подход к использованию в настоящее время в 2016 году
Моя проблема в том, что я не могу понять, как позвонить LoadNativeAssemblies из приложение ASP.NET Core 1.0. Мы используем полный каркас (net461), а не основной каркас.
public class Startup
{
public Startup(IHostingEnvironment env)
{
...
SqlServerTypes.Utilities.LoadNativeAssemblies(env.WebRootPath);
...
}
}
Что это лучший способ, чтобы включить SqlServer.Types DLL файлы в пределах 1.0 приложения ASP.NET?
Связанные вопросы here и here on StackOverflow.
Большое спасибо.
Вы получили что-то с этим? –
Никаких успехов. Я все еще надеюсь выяснить это ... – Ender2050
Из любопытства, что происходит, t включить эту строку? В моем проекте .NET Framework мне не нужно было загружать сборки вручную, и это работало нормально. Мне еще не удалось запустить его на .NET Core из-за других проблем совместимости. –