web-dev-qa-db-ja.com

アセンブリ 'Microsoft.SqlServer.Types'バージョン10以降が見つかりませんでした

私は問題があります。 ASP.NET WebAPI 2プロジェクトに移行を追加できません。エラーが発生します:

「アセンブリ 'Microsoft.SqlServer.Types'バージョン10以降が見つからなかったため、このプロバイダーでは空間型と空間関数を使用できません。」

私はこれについていくつかの質問と回答があることを知っています:

しかし!問題は...

  • Microsoft.SqlServer.Typesを既にインストールしています。
  • 既にGlobal.asaxを構成しています:SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath( "〜/ bin"))Application_Startに。
  • 参照はローカルコピー> trueに設定されます。
  • NuGetパッケージはすべて更新されます。
  • すでにパッケージのダウングレードとアップグレードを試みています。

これは、たとえばAdd-Migration v002を実行しようとしたときの完全なエラーです。

System.InvalidOperationException:アセンブリ 'Microsoft.SqlServer.Types'バージョン10以降が見つからなかったため、このプロバイダーでは空間型と空間関数を使用できません。
en System.Data.Entity.SqlServer.SqlTypesAssemblyLoader.GetSqlTypesAssembly()en System.Data.Entity.SqlServer.SqlSpatialServices.GeographyFromText(String wellKnownText)en System.Data.Entity.Spatial.DbGeography.FromText(String wellKnownText )ja System.Data.Entity.Migrations.Model.ColumnModel.CreateDefaultValue()
en System.Data.Entity.Migrations.Model.ColumnModel..ctor(PrimitiveTypeKind type、TypeUsage typeUsage)en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.BuildColumnModel(EdmProperty property、TypeUsage conceptTypeUsage、TypeUsage defaultStoreTypeUsage 、IDictionary2 annotations) en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.BuildColumnModel(EdmProperty property, ModelMetadata modelMetadata, IDictionary 2アノテーション)
en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer。<> c__DisplayClass2e3.b__2df(EdmProperty p)ja System.Data.Entity.Utilities.IEnumerableExtensions.Each [T](IEnumerable _1 ts, Action_ 1アクション) ja System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.BuildCreateTableOperation(EntitySet entitySet、ModelMetadata modelMetadata)ja System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.b__194(EntitySet es)en System.Linq.Enumerable.WhereSelectEnumerableIterator _2.MoveNext()
en System.Collections.Generic.List
_1..ctor(IEnumerable _1 collection)
en System.Linq.Enumerable.ToList[TSource](IEnumerable
_ 1 source)ja System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(ModelMetadata source、ModelMetadata target、Lazy1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion) en System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, Lazy 1 modificationCommandTreeGenerator、MigrationSqlGenerator migrationSqlGenerator、String sourceModelVersion、String targetModelVersion )ja System.Data.Entity.Migrations.DbMigrator.Scaffold(String migrationName、String namespace、Boolean ignoreChanges)ja System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(Stri ng migrationName、Boolean ignoreChanges)ja System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(MigrationScaffolder scaffolder)ja System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run()ja System.AppDomain.DoCallBack (CrossAppDomainDelegate callBackDelegate)ja System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
en System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)en System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName、String language、String rootNamespace、Boolean ignoreChanges) System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name、Boolean force、Boolean ignoreChanges)ja System.Data.Entity.Migrations.AddMigrationCommand。<> c__DisplayClass2。<。ctor> b__0()ja System.Data.Entity .Migrations.MigrationsDomainCommand.Execute(アクションコマンド)

23
Martín

多くの調査の後、「SQL Server 2012のMicrosoftシステムCLRタイプ」をインストールしました。

魅力のように働いた!

56
Martín

バインディングリダイレクトが欠落していないことを確認してください

  <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
      <bindingRedirect oldVersion="10.0.0.0-11.0.0.0" newVersion="14.0.0.0" />
    </dependentAssembly>
10
R2D2

これは私のために働いた。

これをweb.config> system.webServer >> runtime >> assemblyBindingノードに追加します

  <dependentAssembly>
    <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
  </dependentAssembly>
2
David

問題は「仮想」である可能性があります。 add-migrationコマンドを発行する時点で、binフォルダーにSqlServerSpatial140.dllが必要です。開発目的で.dllをbinにコピーし、デプロイメント中にバージョン(x86/x64)を手動で置き換えます。 SQL Server(2012+)には既にアセンブリがインストールされています。

1
Alex Kudryashev