0

ASP .net 5 プロジェクトを IIS に発行した後、次のエラーが発生しました。

System.TypeLoadException: アセンブリ 'Microsoft.AspNet.Http.Abstractions' から型 'Microsoft.AspNet.Builder.RequestDelegate' を読み込めませんでした

いくつかの投稿によると、パッケージのバージョンが同期されていなかったことが原因のようです。approot/packages フォルダーを確認したところ、サイトが rc1-final で公開されたときに、多くのパッケージのバージョン (rc2) が正しくないことがわかりました。正しいバージョンもあったため、これらのパッケージを削除しましたが、現在、次のエラーが発生しています。

System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
   at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
   at System.Reflection.Assembly.LoadFile(String path)

パブリッシュされたプロジェクトを修正して正しいバージョンに解決するにはどうすればよいですか? project.json 内のすべての参照は明示的に rc1-final を指しています。これが私のproject.jsonの依存関係セクションです:

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.Core": "6.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.ViewFeatures": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
    "Microsoft.Net.Http": "2.2.22",
    "Microsoft.Extensions.Configuration": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",

    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final",

    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
    "Sendgrid": "6.1.0",
    "Sendgrid.Webhooks": "1.1.0",
    "Microsoft.AspNet.SignalR.Server": "3.0.0-rc1-final",
    "RabbitMQ.Client": "3.5.6"

  },
4

1 に答える 1

0

SignalR を参照していることを考えると、標準の NuGet サーバーではなく CI ビルドを使用していると思います。推移的な依存関係が一致していないと思います (たとえば、CI ビルドの Microsoft.AspNet.Http.Abstractions と nuget フィードの Microsoft.AspNet.Http.Abstraction)。

SignalR を削除して既定の nuget フィードに切り替え、パッケージ フォルダーを削除して復元してみてください。その後、実行する必要があります。

ASP.NET Core のアーキテクトである David Fowler が、異なるフィードを混在させるべきではないと言ったことがあると思います。そこから良いものは生まれません。

于 2016-01-28T14:40:39.073 に答える