我正在尝试在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
答案 0 :(得分:0)
您应该使用System.Reflection.Assembly.GetEntryAssembly().Location
请注意,它将返回进程exe的路径。
您必须使用System.IO.Path.GetDirectoryName(path)
来获取包含进程exe的目录的路径。
对于MSDN:
GetCallingAssembly
=&gt;调用当前正在执行的方法的方法的程序集。
GetExecutingAssembly
=&gt;包含当前正在执行的代码的程序集。
GetEntryAssembly
=&gt;作为流程可执行文件的程序集。