无法加载文件或程序集System.Runtime,Version = 4.1.0.0'在.NET Core中

时间:2016-09-13 04:12:39

标签: c# .net-core

Unhandled 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.

   at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
   at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
   at System.AppDomain.GetTargetFrameworkName()

我在我的应用程序中使用AssemblyLoadContext,所以我有" System.Runtime.Loader":" 4.0.0"作为依赖,但在发布我的项目后,我有上述错误。

dotnet --version
1.0.0-preview2-003121

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    },
    "CommandLineArgumentsParser": "3.0.4",
    "System.Runtime.Loader": "4.0.0",
    "Microsoft.Extensions.DependencyModel": "1.0.0",
    "System.Runtime": "4.1.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

使用visual studio我可以运行我的应用程序但是使用dotnet命令行我有上面的错误。 有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

您创建的项目为.NET 4.6.2"并且您正尝试使用dotnet核心进行编译。您需要在第一个或第二个之间进行选择。您的错误正在发生,因为项目文件vcxproj引用了.net 4.6.2,并且dotnet无法使其正常工作。

今天,您可能想要清理vcxproj文件以及您的dotnet配置,将源迁移到新项目(我建议使用dotnet core 2),这应该运行。

答案 1 :(得分:0)

项目文件夹中的

'dotnet restore'? (我在rc2中遇到了这样的问题 - > project.lock.json在解决方案级别'恢复'之后没有包含用于右拱的lib的链接)

答案 2 :(得分:0)

对于我的情况,我安装了两个NuGet包,我只需要一个。当然希望这个错误更具体,并指出我必须在干草堆中寻找针头1.5小时!

Bad (Unecessary) Package --> 
DeveloperForce.NetCore.Force (by GTarek) 

Good (Needed) Package -->
DeveloperForce.Force (by developerforce) 

一旦我删除了坏包,这个错误就消失了,我又回来了。我猜这个错误的很多人可能正在摔跤w /类似的问题(可能不是相同的两个包)。