0

我试图在 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);
    }
}

包管理器控制台的输出;

你调用的对象是空的。

我期待着;

C:\Development\My.Domain
4

1 回答 1

0

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

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

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

对于 MSDN:

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

于 2013-08-07T12:18:59.867 回答