- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我们在 EF Migrations 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 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28165146/
当我运行“sqlFile”类型的 Liquibase changeSet 来插入数据时,出现 MySQLSyntaxErrorException。我的查询是正确的,因为它可以在 MySQL Workb
我们在 EF Migrations 6.1.2 中使用新的 DbMigration.SqlFile 方法在我们的迁移中运行迁移脚本。根据the documentation ,该文件必须相对于当前的 A
我尝试了很多选项来在包含 pl/sql 块和简单的 sql 语句的房间 changeSet/sqlFile 中运行。例如。: BEGIN aud.someProcedure('paramete
我是一名优秀的程序员,十分优秀!