小编Tal*_*aul的帖子

有没有办法从已发布的DLL运行EF Core RC2工具?

发布.Net Core RC1应用程序后,project.json中指定的命令具有为其创建的相应.cmd文件,这些文件可在部署后执行(例如web.cmd和ef.cmd).在我的例子中,我想在我的部署目标上运行以下Entity Framework命令:

dotnet ef database update -c MyContext
Run Code Online (Sandbox Code Playgroud)

当我从包含源代码的文件夹运行它时,这工作正常,但是在发布后,它似乎没有在编译的DLL中找到命令.我对RC2命令变化的理解是"工具"可以编译为名为dotnet - *.dll的独立应用程序,并且可以通过CLI执行.如何将实体框架核心工具公开为已发布输出中的可执行DLL?

仅供参考,我的构建/部署工作流程如下:

TeamCity的

dotnet restore => dotnet build => dotnet test => dotnet publish

八达通部署

上传包=> EF更新数据库=>等

entity-framework-core asp.net-core

13
推荐指数
3
解决办法
2928
查看次数

使用AutoFac解决.Net Core 2.0中的身份验证服务

我正在将.Net Core 1.x项目迁移到.Net Core 2.0。发生的变化之一是,现在ConfigureServices在启动期间使用扩展名来配置身份验证IServiceCollection

我的身份验证方案中使用了一些自定义服务,但是大部分DI注册都是使用AutoFac构建的(在此之后被调用):

public IServiceProvider ConfigureServices(IServiceCollection services)
{
    //Other .Net Services Registered
    services.AddTransient<ITicketStore, DistributedCacheTicketStore>(); 
    services.AddSingleton<AuthenticationEvents>();  

    var sp = services.BuildServiceProvider();

    services.AddAuthentication()
        .AddCookie(options =>
        {
            //Other cookie options
            options.SessionStore = sp.GetService<ITicketStore>();
        })
        .AddOpenIdConnect(options =>
        {
            //Other OIDC options
            options.Events = sp.GetService<AuthenticationEvents>();
        });

    //Register application services with AutoFac
    var builder = new ContainerBuilder();
    RegisterAutoFacTypes(builder);

    //Include services from .Net DI container
    builder.Populate(services);

    //Build and return the AutoFac container
    var container = builder.Build();
    return container.Resolve<IServiceProvider>();
}
Run Code Online (Sandbox Code Playgroud)

目前,我试图同时注册的依赖关系DistributedCacheTicketStore …

asp.net dependency-injection autofac asp.net-core-2.0

5
推荐指数
0
解决办法
1076
查看次数