为什么添加Project-References会破坏依赖项

时间:2016-11-23 21:40:37

标签: c# .net asp.net-core .net-core

我目前正在使用一个非常完善的VS2015项目模板学习AngularJS2,我在这里找到:http://blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/。 由于我总是非常喜欢为学习应用提供一些商业价值,所以我想获取一些数据库的数据。所以我创建了新的.Net 4.6.1程序集,我可以在其中添加我的businesslogic和实体框架。

好吧,我们都知道,我无法将.Net核心应用程序的项目引用添加到Full-Stack .NET。为了解决这个问题,我在这里使用了指南:https://github.com/BradRem/AspNetCoreWithFrameworkLibrary/blob/master/AspNetCoreApp/,它基本上建议切换project.json中的frameworks-tab来自

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

  "frameworks": {
    "net46": {

    }    
  },

嗯,那是我烦恼的开始: 看起来我只能使用.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以使其工作。 所以,没什么大不了的,我将Assembly-Versions保持为4.6并在project.json中设置框架,但后来变得很奇怪:我可以构建ASP.NET核心项目,框架设置为4.6,但是很快当我添加我的程序集时:

  "frameworks": {
    "net46": {
      "dependencies": {
        "xx.PES.Logics": {
          "target": "project"
        },
        "xx.PES.Model": {
          "target": "project"
        }
      }
    }    
  },

其他依赖项开始失败。例如:

  

其他信息:无法加载文件或程序集   ' Microsoft.Extensions.Logging.Abstractions,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = adb9793829ddae60'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

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

TLDR:我没有做我想做的事情,而是学习AngularJS2,我所做的就是努力使这种依赖性成为可能。我还搜索了一般文档,可以混合的内容,标签的工作方式等,但似乎并没有多少文档。 是否记录了一些最佳实践或发现,或者基本上只是为了尽早使用.NET-Core?

1 个答案:

答案 0 :(得分:1)

  

Full-Stack .NET

Agrrrrr,它的命名.Net框架。不要再做那个moster

如果您对软件包有问题,建议您通过dotnet restore或解决方案浏览器进行恢复,方法是点击参考>恢复包

接下来的事情。如果您想要添加对其他项目的引用,您需要确保使用相同或更低的.Net在主项目中使用的内容