已导入多个具有等效标识的程序集:“<内存中程序集>”和“<内存中程序集>

Multiple assemblies with equivalent identity have been imported: '<in-memory assembly>' and '<in-memory assembly>'

提问人:Viswanatha Swamy 提问时间:9/22/2015 最后编辑:CœurViswanatha Swamy 更新时间:3/7/2018 访问量:3453

问:

当我尝试启动容器时,我收到以下错误。这是一个简单的 asp.net vnext Web 应用程序。我正在尝试在 Windows Server 2016 的 docker 容器中托管它。请指教。

System.IO.FileLoadException: Could not load file or assembly 'samplewebapplication' or one of its dependencies. General Exc
eption (Exception from HRESULT: 0x80131500)
File name: 'samplewebapplication' ---> Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: error CS1703: Multipl
e assemblies with equivalent identity have been imported: '<in-memory assembly>' and '<in-memory assembly>'. Remove one
of the duplicate references.
   at Microsoft.Framework.Runtime.Roslyn.RoslynProjectReference.Load(IAssemblyLoadContext loadContext)
   at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName, IAssemblyLoadContext load
Context)
   at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName)
   at dnx.host.LoaderContainer.Load(AssemblyName assemblyName)
   at dnx.host.DefaultLoadContext.LoadAssembly(AssemblyName assemblyName)
   at Microsoft.Framework.Runtime.Loader.AssemblyLoaderCache.GetOrAdd(AssemblyName name, Func`2 factory)
   at Microsoft.Framework.Runtime.Loader.LoadContext.LoadAssemblyImpl(AssemblyName assemblyName)
   at Microsoft.Framework.Runtime.Loader.LoadContext.TryLoadAssembly(LoadContext context, AssemblyName assemblyName, Ass
embly& assembly)
   at Microsoft.Framework.Runtime.Loader.LoadContext.ResolveAssembly(Object sender, ResolveEventArgs args)
   at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Runtim
eAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntro
spection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Runtime
Assembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntros
pection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, Ru
ntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIn
trospection, Boolean suppressSecurityChecks)
   at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   at Microsoft.AspNet.Hosting.Startup.StartupLoader.FindStartupType(String startupAssemblyName, IList`1 diagnosticMessa

这是Project.json文件内容。

{
"webroot": "wwwroot",
"version": "1.0.0-*",

"dependencies": {
"Microsoft.AspNet.Diagnostics": "1.0.0-beta6",
"Microsoft.AspNet.Mvc": "6.0.0-beta6",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
"Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
"Microsoft.Framework.Logging": "1.0.0-beta6",
"Microsoft.Framework.Logging.Console": "1.0.0-beta6",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6",
"AzureCloudTableContext": "2.2.0-beta",
"Sendgrid": "6.1.0",
"Microsoft.AspNet.WebPages": "3.2.3"
},

"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini"
},

"frameworks": {
"dnx451": {
  "dependencies": {
    "System.Net.Http.Formatting.Extension": "5.2.3.0",
    "System.Configuration.Abstractions": "2.0.2.24",
    "System.Net.Http": "4.0.1-beta-23225",
    "System.Runtime.Serialization.Primitives": "4.0.10-*",
    "System.Runtime": "4.0.20-beta-22816",
    "System.Collections": "4.0.0.0",
    "System.IO": "4.0.0.0",
    "System.Text.Encoding": "4.0.0.0",
    "System.Threading.Tasks": "4.0.0.0",
    "System.Collections.Concurrent": "4.0.0.0",
    "System.Linq": "4.0.0.0"
  },
  "frameworkAssemblies": {
    "System.Core": "",
    "System": "",
    "mscorlib": "",
    "System.ComponentModel.DataAnnotations": "4.0.0.0",
    "System.Data": "4.0.0.0",
    "System.Data.Services.Client": "4.0.0.0",
    "System.Data.Linq": "4.0.0.0",
    "System.Configuration": "4.0.0.0",
    "System.Security": "4.0.0.0",
    "System.Xml": "4.0.0.0",
    "System.Xml.Linq": "4.0.0.0",
    "System.Net": "4.0.0.0"
  }
}
},

"exclude": [
"wwwroot",
"node_modules",
"bower_components"
],
"publishExclude": [
"node_modules",
"bower_components",
"**.xproj",
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
asp.net docker asp.net-core windows-server

评论

0赞 Viswanatha Swamy 9/23/2015
我想附上project.json以获取更多信息。但是由于字符数限制,我无法做到。请指教。

答:

0赞 Viswanatha Swamy 9/26/2015 #1

所有,在追逐了几天和多次实验之后。我已经缩小了范围。问题是我试图仅使用 dnx451 框架推送 asp.net vnext 应用程序。在包含 dnxcore50 之后,我能够将应用程序推送到 Windows Server 2016 中的 Docker 容器中。

"frameworks": {
   "dnx451": { },
    "dnxcore50": { }
  },