Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么添加项目引用会打破依赖关系_C#_.net_Asp.net Core_.net Core - Fatal编程技术网

C# 为什么添加项目引用会打破依赖关系

C# 为什么添加项目引用会打破依赖关系,c#,.net,asp.net-core,.net-core,C#,.net,Asp.net Core,.net Core,我目前正在学习AngularJS2,它使用了一个非常好的VS2015项目模板,我在这里找到了:。 因为我一直非常喜欢给学习应用程序一些商业价值,所以我想获取一些数据库的数据。因此,我创建了新的.NET4.6.1程序集,可以在其中添加我的businesslogic和实体框架 我们都知道,我无法将.Net核心应用程序中的项目引用添加到完整的.Net应用程序堆栈中。为了解决这个问题,我在这里使用了指南:,它基本上建议将project.json中的frameworks选项卡从 "frameworks

我目前正在学习AngularJS2,它使用了一个非常好的VS2015项目模板,我在这里找到了:。 因为我一直非常喜欢给学习应用程序一些商业价值,所以我想获取一些数据库的数据。因此,我创建了新的.NET4.6.1程序集,可以在其中添加我的businesslogic和实体框架

我们都知道,我无法将.Net核心应用程序中的项目引用添加到完整的.Net应用程序堆栈中。为了解决这个问题,我在这里使用了指南:,它基本上建议将project.json中的frameworks选项卡从

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

那是我麻烦的开始: 似乎我只能使用.Net 4.6,而不能使用4.6.1或4.6.2,否则现有的依赖项:

"Microsoft.AspNetCore.AngularServices": "1.0.0-*",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.CommandLine": "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",
"Unity": "4.0.1",
"NETStandard.Library": "1.6.1",
"CommonServiceLocator": "1.3.0"
需要更新。我试图做这些更新,但是NuGet更新了project.json,使其不再可用!因此,我必须重新创建一个项目并复制原始的project.json以使其正常工作。 因此,没什么大不了的,我将程序集版本保持在4.6,并在project.json中设置了框架,但后来它变得很奇怪:我可以在框架设置为4.6的情况下构建ASP.NET核心项目,但一旦我添加了程序集:

  "frameworks": {
    "net46": {
      "dependencies": {
        "xx.PES.Logics": {
          "target": "project"
        },
        "xx.PES.Model": {
          "target": "project"
        }
      }
    }    
  },
其他依赖项开始失败。例如:

其他信息:无法加载文件或程序集 'Microsoft.Extensions.Logging.Abstractions,版本=1.0.0.0, 区域性=中性,PublicKeyToken=adb9793829ddae60'或其 依赖关系。定位程序集的清单定义不正确 匹配程序集引用。(来自HRESULT的异常:0x8013100)

我必须删除依赖项,手动清理(!)bin文件夹,然后它再次工作

TLDR:我所做的不是做我想做的事,而是学习AngularJS2,我所做的就是努力让这种依赖性发挥作用。我还搜索了一些一般的文档,什么可以混合,标签是如何工作的等等,但是周围似乎没有太多文档。 是否有一些最佳实践或发现被记录在案,或者使用.NETCore基本上还为时过早

全栈.NET

AGRRRR,它的命名.Net框架。别再犯那样的错误了

如果您对软件包有问题,我建议您通过
dotnet restore
进行恢复,或者在解决方案中单击References>restore packages进行恢复


下一件事。如果要添加对其他项目的引用,则需要确保使用与主项目中使用的相同或更低的.Net版本

请不要将标记强制添加到标题中,这就是标记部分的目的,抱歉。因此,从.Net核心程序集项目引用.Net Framework DLL应该有效吗?
  "frameworks": {
    "net46": {
      "dependencies": {
        "xx.PES.Logics": {
          "target": "project"
        },
        "xx.PES.Model": {
          "target": "project"
        }
      }
    }    
  },