如果我第三次忘记了:project.json配置用于引用完整的.NET DLL

我一直在使用一个使用EF6模块的ASP.NET 5应用程序。EF6模块是. net 4.6。

当重新创建这个从零开始,我总是犯同样的错误,第一次让我困惑了好几个小时,第二次只有15分钟。我想下一次,我会事先记住怎么做,但我还是决定把它写下来。

这里是没有任何标识基础结构集的新ASP.NET 5 MVC应用程序的默认project.json。这是由ASP.NET 5 Web应用程序模板直接搭建的,我选择不包含任何身份验证。同样值得注意的是,我使用的是RC1。

{“版本”:“1.0.0**”,“compilationOptions”:{“emitEntryPoint”:},“依赖”:{“Microsoft.aspnet.诊断”:“1.0.0-RC1-最终”,“Microsoft.AspNet.IISPlatformHandler”:“1.0.0-RC1-最终”,“微软.aspnet.mvc”:“6.0.0-RC1-最终”,“Microsoft.aspnet.mvc.taghelpers”:“6.0.0-RC1-最终”,“微软.aspnet.server.kestrel”:“1.0.0-RC1-最终”,“Microsoft.AspNet.StaticFiles”:“1.0.0-RC1-最终”,“Microsoft.AspNet.Tooling.Razor”:“1.0.0-RC1-最终”,“Microsoft.Extensions.Configuration.FileProviderExtensions”:“1.0.0-RC1-最终”,“Microsoft.Extensions.Configuration.Json”:“1.0.0-RC1-最终”,“Microsoft.Extensions.Logging”:“1.0.0-RC1-最终”,“Microsoft.Extensions.Logging.Console”:“1.0.0-RC1-最终”,“Microsoft.Extensions.Logging.Debug”:“1.0.0-RC1-最终”,“Microsoft.VisualStudio.Web.BrowserLink.Loader”:“14.0.0-RC1-最终”},“命令”:{“网络”:“微软.aspnet.server.kestrel”},“框架”:{“DNX451”{ },“dnxcore50”: {}},“排除”:【“wwwroot”,“node_modules”),“publishExclude”:【“* * .user”,“* * .vspscc”),“脚本”:{“预发布”:【“npm安装”,“鲍尔安装”,“大口干净”,“大口分钟”]}}

我需要添加一个对我的.net4.6类库项目ef6model的引用。这不是一个ASPNET5项目。没有dnx。没有dnu。直。net。我的第一反应是在““Microsoft.VisualStudio.Web.BrowserLink.Loader”。它除了失败什么也不做,失败,失败,失败。弯弯曲曲的线条不能建立。唯一的帮助就是“排序”。

问题的核心是,默认的scaffold指定这将用于dnx451和dnxcore50框架。我的程序集不被dnxcore50认可。在Dependencies部分中,我是说这里的所有内容都应该与这两个框架一起工作。那不是真的。

如果我知道我永远不需要dnxcore50,我可以把它从框架部分删除:

“框架”:{“DNX451”:{}
},

同时,这里的默认.NET版本是4.51。我的dll是4。6,所以我必须修复它,了。

“框架”:{“dnx46”: {}},

这个更改将要求您运行dnu还原—至少我必须这样做!微笑

您还可以直接在框架部分而不是依赖部分ala中指定依赖项:

“框架”:{“dnx46”:{“依赖”:{“EF6Model”:“1.0.0**”}}},

我喜欢这个,因为它明确地告诉我EF6Model是特殊的,并且只受dnx46支持。随着我不断改进我的应用程序,可能会对依赖项甚至框架进行更改,我知道依赖项部分中的内容应该得到任何目标框架的支持,而框架的特定依赖关系是非常明显的。

把这个写下来,我希望现在它就在我的脑海里,我不会再浪费时间去思考那些错误。

报名参加我的时事通讯所以你不会错过我的会议和多元化视野课程公告!

关于“如果我第三次忘记了:project.json配置用于引用完整的.NET DLL

  1. 在这个设置中,如何传递上下文的connectionstring ?在4.6中,您可以从.config文件引用构造函数中的connectionString名称,但在与5.0客户机应用程序集成时,该名称不可用。

留下一个回复

您的电子邮件地址将不会被公布。必填字段已标记*

此网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据