“无法从包中读取模式模型头信息。”

问题描述 投票:1回答:1

[我尝试通过Visual Studio C#中的代码将.dacpac部署到我的MS Sql数据库中,并且每当要部署.dacpac文件时,都会引发此错误:

Microsoft.SqlServer.Dac.DacServicesException:'无法从包中读取架构模型头信息。'

SqlPackageException:不支持模型版本'2.9'。

我经历了多个线程并尝试对其进行修复,但没有任何办法可以解决我的错误。

我为使用Microsoft.SqlServer.Dac导入了Microsoft.SqlServer.Dac-x86 Nuget软件包;命名空间。

我也安装了SSMS18。

当我通过Visual Studios SQL Server对象资源管理器进行操作时,我也可以部署相同的.dacpac文件(那里没有错误并且可以正常运行,但是我需要在代码中进行操作。]]

连接字符串和文件路径都正确。

这是我正在使用的方法(最后一行显示错误):

        var dbServices = new DacServices(connString);

        var dbPackage = DacPackage.Load(new FileStream(dacpacPath, FileMode.Open, FileAccess.Read), DacSchemaModelStorageType.Memory, FileAccess.Read);

        var dbDeployOptions = new DacDeployOptions
        {
            CreateNewDatabase = true
        };

        dbServices.Deploy(dbPackage, NewDBName.Text, upgradeExisting: true, options: dbDeployOptions);

有人可以为此解决吗?

[我尝试通过Visual Studio C#中的代码将.dacpac部署到我的MS Sql数据库中,并且每当要部署.dacpac文件时,都会引发此错误:Microsoft.SqlServer.Dac ....

c# sql-server dacpac
1个回答
0
投票

对于我来说,dacpack Dll(Microsoft.SqlServer.Dac.dll)的版本错误。它是针对SQL 2015 \Program Files (x86)\Microsoft SQL Server\130\DAC\bin从x86加载的,而不是针对SQL 2017 \Program Files\Microsoft SQL Server\140\DAC\bin从x64加载的。

© www.soinside.com 2019 - 2024. All rights reserved.