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