シンプルな.netコアのMVC Webサービスを作成しました。私がそれを実行するとうまく動作します。.Netコアテストプロジェクトでシステム参照が失われ続ける
私はテストプロジェクトといくつかのテストで追加しましたが、すべて正常に機能しました。
今朝私は私のウェブサービスをリファクタリングして、使用していたDAOコードが別のアセンブリに移動されるようにしました。私がこれをやろうとすると、http500のエラーが出てきて、私のテストプロジェクトはもはや動かなくなります。
System.IO.FileNotFoundException:ファイルまたはアセンブリ をロードできませんでした 'System.Runtime、バージョン= 4.1.0.0、文化=中立、 なPublicKeyToken = b03f5f7f11d50a3a' またはその依存関係の1つ。 システムは、指定されたファイルを見つけることができません。
急いでグーグルが何かを回していないので、私はDAOアセンブリプロジェクトへの参照を削除し、元のプロジェクトにすべてのコードをコピーしました。今、元のプロジェクトは動作しますが、テストプロジェクトでバインディングエラーが発生しています。 Fusionはエラーを表示します。
Test method TestService_Tests.ControllerTests.TestGetEnquiries threw exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86.exe
A detailed error log follows.
Pre-bind state information ===
LOG: DisplayName = System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///c:/users/matt/documents/visual studio 2015/Projects/TestService/TestService_Tests/bin/Debug
LOG: Initial PrivatePath = NULL
Calling assembly : ReportingService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: The same bind was seen before, and was failed with hr = 0x80070002.
私は、.netコアアセンブリを追加するとどこかで構成上の問題が発生したとします。しかし、どのように私はそれを追跡するのですか?テストプロジェクトを削除して、もう一度やり直して、構成の問題がテストプロジェクトにあることを望んでいませんか?
試行錯誤で、コントローラを呼び出す行でエラーが発生したと言えます。 コントローラーの動作をテストしないダミー・テスト。しかし、問題は私のコードのいずれかでテストが行われるとすぐに発生します。
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"ReportingBusinessLayer": "1.0.0-*",
"System.Runtime": "4.1.0" },
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
project.jsonファイルを投稿できますか? –
xUnitを使用しようとしていますが、解決できない場合は復元して行います。 – Matt
Project.jsonファイルが追加されました – Matt