c# – 基本目录中的DbMigration.SqlFile差异

c# – 基本目录中的DbMigration.SqlFile差异,第1张

概述我们在EF迁移6.1.2中使用新的DbMigration.SqlFile方法在迁移中运行迁移脚本.根据 the documentation,该文件必须相对于当前的AppDomain BaseDirectory.我们已将这些文件包含在项目中,并将它们设置为复制到输出目录. 在当地这一切都运行良好.它们输出到bin目录,并运行正常. 然而,在将软件部署到运行IIS的服务器时,迁移失败,因为它突然期望文 我们在EF迁移6.1.2中使用新的DbMigration.sqlfile方法在迁移中运行迁移脚本.根据 the documentation,该文件必须相对于当前的AppDomain BaseDirectory.我们已将这些文件包含在项目中,并将它们设置为复制到输出目录.
在当地这一切都运行良好.它们输出到bin目录,并运行正常.

然而,在将软件部署到运行IIS的服务器时,迁移失败,因为它突然期望文件相对于根.当我将它们复制到那里时,迁移工作正常.

如何使用DbMigration.sqlfile使其在本地和服务器上正确运行?

解决方法 如果给出了相对路径,则sqlfile方法使用CurrentDomain.BaseDirectory.解决方法是自己映射路径并给出方法的绝对路径.解决方案如下所示:
var sqlfile = "MigrationScripts/script1.sql";var filePath = Path.Combine(GetBasePath(),sqlfile);sqlfile(filePath);public static string GetBasePath()          {           if(System.Web.httpContext.Current == null) return AppDomain.CurrentDomain.BaseDirectory;     else return Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"bin");}

BasePath解决方案取自:Why AppDomain.CurrentDomain.BaseDirectory not contains “bin” in asp.net app?

总结

以上是内存溢出为你收集整理的c# – 基本目录中的DbMigration.SqlFile差异全部内容,希望文章能够帮你解决c# – 基本目录中的DbMigration.SqlFile差异所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存