模板10和netstandard 2.0

时间:2018-02-08 13:37:43

标签: visual-studio-2017 entity-framework-core template10 .net-standard-2.0

我想知道模板10是否与netstandard2.0兼容。我有一个非常简单的库,如下所示:

using Microsoft.EntityFrameworkCore;
using System;
using System.ComponentModel.DataAnnotations;

namespace TransactionModel
{
    public class MyTransaction
    {
        [Key]
        public Guid TransactionId { get; set; }
        public string BankID { get; set; }
        public string MerchantID { get; set; }
        public DateTime TransactionDate { get; set; }
        public string TransactionDescription { get; set; }
        public float TransactionAmount { get; set; }
        public string TransactionComments { get; set; }

    }
    public class TransactionContext : DbContext
    {
        public DbSet<MyTransaction> transactionBatch { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionBuilder)
        {
            optionBuilder.UseSqlite("Data source=transactions.db");
        }
    }
}

下面列出了这个库csproj文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
        <TargetFrameworks>netcoreapp2.0;netstandard2.0</TargetFrameworks>
        <!--<TargetFramework>netstandard2.0</TargetFramework>-->
        <RuntimeFrameworkVersion>2.0.3</RuntimeFrameworkVersion>
        <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    </PropertyGroup>

    <ItemGroup>
    <PackageReference Include="microsoft.entityframeworkcore.Sqlite" Version="2.0.1" />
    <PackageReference Include="microsoft.entityframeworkcore.tools" Version="2.0.1" />
  </ItemGroup>

</Project>

我已经安装了Microsoft.EntityFrameworkCore.Sqlite和Microsoft.EntityFrameworkCore.Tools包,然后添加迁移成功地为数据库建立了数据库。

但是当我尝试引用TransactionModel时,编译器生成了一堆错误,但我认为这是主要的错误: &#34;无法解析Assembly或Windows Metadata文件..&#34;

enter image description here

我附上了我的vs2017解决方案的图片。我还没有在T10上写过代码,我刚刚创建了T10模板,引用了我的库,vs2017生成了错误。如果我使用UWP,我没有得到这样的错误......

所以我的问题是,是否可以将T10与EntityFrameworkCore和netstandard2.0一起使用?有办法解决这个错误吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

由于Template 10库是通用Windows库,因此无法在Template 10库上创建.NET Core项目的依赖项。当前版本的模板10也是如此。对于模板10的下一个版本也是如此。为什么?因为模板10是为增强UWP应用程序开发而构建的库,因此需要Windows命名空间,如您所知,它不是.NET标准的一部分。怎么会这样? Windows命名空间永远不可能是跨平台的。话虽这么说,Windows 10(新版本)的基本接口并非源自Prism.Core,它是一个.NET标准库。这意味着导航界面和MVVM类都是外部的,并且可以继承侧步模板10.这回答了你的问题,我希望你理解技术原因。事情就是这样。