首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单独项目中的ASP.NET 5网络项目和实体框架

单独项目中的ASP.NET 5网络项目和实体框架
EN

Stack Overflow用户
提问于 2015-10-09 14:23:20
回答 3查看 1.9K关注 0票数 3

从哪里开始..。这让我一整天都很难过。

我已经更新了我的项目,以使用新的ASP.NET 5空预览模板。

我已经成功地完成了我所有的项目建设,但是当我运行我的网站时,我会发现这个错误。

当前运行时目标框架与“MY.WEB.NAMESPACE”不兼容。 当前运行时目标框架:'DNX,Version=v4.5.1 (dnx451)‘类型: CLR体系结构: x86版本: 1.0.0-beta5-12103 请确保运行时与project.json中指定的框架匹配。

到目前为止,我看到的所有示例似乎都在同一个项目中使用了两个EntityFramework,但是我在一个单独的项目中使用了EntityFramework (当前版本为6)。我的项目如下

Infrastructure -有用的函数,由任何项目引用

实体- My对象

Data - My DbContext类和其他特定于数据库的代码

服务-我的添加/更新实体的服务,还引用SimpleValidation进行验证

-我的web应用程序,它由WebApi和angularJs组成。

现在,我为每个项目提供了一个project.json文件,如下所示

基础设施

代码语言:javascript
复制
{
    "version": "1.0.0-*",
    "description": "my.namespace.Infrastructure",
    "authors": [ "me" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",

    "dependencies": {
        "System.Collections": "4.0.11-beta-23225",
        "System.Linq": "4.0.1-beta-23225",
        "System.Threading": "4.0.11-beta-23225",
        "System.Runtime": "4.0.21-beta-23225",
        "Microsoft.CSharp": "4.0.1-beta-23225",
        "Humanizer": "1.37.7"
    },

    "frameworks": {
        "net46": { }
    }
}

胆石(POCOS)

代码语言:javascript
复制
{
    "version": "1.0.0-*",
    "description": "my.namespace.Entities",
    "authors": [ "me" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",

    "dependencies": {
        "System.Collections": "4.0.11-beta-23225",
        "System.Linq": "4.0.1-beta-23225",
        "System.Threading": "4.0.11-beta-23225",
        "System.Runtime": "4.0.21-beta-23225",
        "Microsoft.CSharp": "4.0.1-beta-23225"
    },

    "frameworks": {
        "net46": { }
    }
}

数据(DBCONTEXT)

代码语言:javascript
复制
{
    "version": "1.0.0-*",
    "description": "my.namespace.Data",
    "authors": [ "me" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",

    "dependencies": {
        "System.Collections": "4.0.11-beta-23225",
        "System.Linq": "4.0.1-beta-23225",
        "System.Threading": "4.0.11-beta-23225",
        "System.Runtime": "4.0.21-beta-23225",
        "Microsoft.CSharp": "4.0.1-beta-23225",
        "DbExtensions": "5.1.0",
        "my.namespace.Entities": "1.0.0-*",
        "my.namespace.Infrastructure": "1.0.0-*",
        "EntityFramework": "6.1.3"
    },

    "frameworks": {
        "net46": { }
    }
}

服务

代码语言:javascript
复制
{
    "version": "1.0.0-*",
    "description": "my.namespace.Service",
    "authors": [ "me" ],
    "tags": [ "" ],
    "projectUrl": "",
    "licenseUrl": "",

    "dependencies": {
        "System.Collections": "4.0.10-beta-23019",
        "System.Linq": "4.0.0-beta-23019",
        "System.Threading": "4.0.10-beta-23019",
        "System.Runtime": "4.0.10-beta-23019",
        "Microsoft.CSharp": "4.0.0-beta-23019",
        "FluentValidation": "5.6.2",
        "my.namespace.Entities": "1.0.0-*",
        "my.namespace.Data": "1.0.0-*",
        "my.namespace.Infrastructure": "1.0.0-*",
        "ncalc": "1.3.8"
    },

    "frameworks": {
        "net46": { }
    }
}

我的web应用程序,project.json看起来像这样

代码语言:javascript
复制
{
    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "description": "my.namespace.Web",
    "authors": [ "me" ],

    "dependencies": {
        "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
        "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
        "Microsoft.AspNet.Mvc": "6.0.0-beta5",
        "AutoMapper": "4.0.4"
    },

    "commands": {
        "web": "Microsoft.AspNet.Hosting --config hosting.ini"
    },

    "frameworks": {
        "dnx5": {
            "dependencies": {
                "my.namespace.Infrastructure": "1.0.0-*",
                "my.namespace.Entities": "1.0.0-*",
                "my.namespace.Data": "1.0.0-*",
                "my.namespace.Service": "1.0.0-*"
            }
        }
    },

    "publishExclude": [
        "node_modules",
        "bower_components",
        "**.xproj",
        "**.user",
        "**.vspscc"
    ],
    "exclude": [
        "wwwroot",
        "node_modules",
        "bower_components"
    ]
}

现在这一切看起来都很好,没有错误,但是当我尝试运行时,我得到了上面的消息。我看到了另一篇文章here,它建议添加一个环境变量,但这似乎行不通。

如果我删除对其他项目的所有引用,注释掉引用其他项目的所有代码,然后将框架标记更改到此,站点将加载。

代码语言:javascript
复制
"frameworks": {
    "dnx45": {
        "dependencies": {

        }
    }
},

任何帮助都将不胜感激。

编辑。

这是我的项目属性

当我换到dnxcore5时,我得到了这个

编辑2:

我更新了所有使用dnx50的项目,并删除了dnxcore50。我还是会犯同样的错误。一定是和我的installation....But有关,我不知道.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-10 09:56:27

第一个目标dnx-clr-win-x86 (在您的情况下很可能是beta5 ),因为您希望在上运行这个目标。检查您的解决方案属性。还可以查看解决方案项文件夹中的global.json。请注意,运行时的目标是clr

代码语言:javascript
复制
"sdk": {
    "version": "1.0.0-beta5",
    "runtime": "clr",
    "architecture": "x86"
}

将dnx5 (不存在)更改为dnx46,并从所有project.json文件中删除dnxcore50。

代码语言:javascript
复制
"frameworks": {
    "dnx46": {
        "dependencies": {}
    }
},

在web项目"DNX_IIS_RUNTIME_FRAMEWORK“:"DNX46”中添加一个环境变量

顺便提一句,beta7已经发布了,我建议您使用它而不是beta5,并且还记得升级dnvm。

票数 4
EN

Stack Overflow用户

发布于 2015-10-10 05:59:20

dnx5不是一件事--你是在指定一个不存在的框架。

当您将其更改为dnxcore50时,会失败,因为只针对coreclr的项目不能引用针对clr (net46)的库。无论如何,coreclr还没有完成功能,上次我检查它还没有实现System.Data.Sql,所以您仍然不能在它上运行实体框架。

您应该首先确定要在哪个框架上运行应用程序,只针对它们,然后再修复您的依赖关系。

票数 1
EN

Stack Overflow用户

发布于 2016-03-01 10:53:49

尝试使用“Install EntityFramework.MicrosoftSqlServer -Pre”。为我工作过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33040733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档