从POCO迁移种子()获取项目路径

时间:2013-08-07 12:04:23

标签: c# ef-code-first poco

我正在尝试在Seed()线程中获取可执行文件路径。但是我没有得到我想要的价值。我的目标是枚举可执行路径中的文件,并使用它们;

internal sealed class Configuration : DbMigrationsConfiguration<DBContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(DBContext context)
    {
        // get list of files
        var sqlfileList = Directory.GetFiles(System.Reflection.Assembly.GetEntryAssembly().Location);
    }
}

Package Manager控制台的输出;

  

对象引用未设置为对象的实例。

我期待;

C:\Development\My.Domain

1 个答案:

答案 0 :(得分:0)

您应该使用System.Reflection.Assembly.GetEntryAssembly().Location

请注意,它将返回进程exe的路径。

您必须使用System.IO.Path.GetDirectoryName(path)来获取包含进程exe的目录的路径。

对于MSDN:

GetCallingAssembly =&gt;调用当前正在执行的方法的方法的程序集。 GetExecutingAssembly =&gt;包含当前正在执行的代码的程序集。 GetEntryAssembly =&gt;作为流程可执行文件的程序集。