.net 分析dacpac docker microsoft sql server时出错

.net 分析dacpac docker microsoft sql server时出错,.net,sql-server,docker,dockerfile,dacpac,.net,Sql Server,Docker,Dockerfile,Dacpac,我正在尝试使用dockerfile文件并使用dacpac创建映像,但当我尝试执行发布时,它会引发此异常:分析连接字符串时出错:“Microsoft.SqlServer.Dac.DacProfile”的类型初始值设定项引发异常。。 这是我的文件 FROM microsoft/mssql-server-windows-express COPY sqlpackage/1033 /opt/sqlpackage/1033 COPY sqlpackage/Extensions /opt/sqlpackag

我正在尝试使用dockerfile文件并使用dacpac创建映像,但当我尝试执行发布时,它会引发此异常:分析连接字符串时出错:“Microsoft.SqlServer.Dac.DacProfile”的类型初始值设定项引发异常。。 这是我的文件

FROM microsoft/mssql-server-windows-express

COPY sqlpackage/1033 /opt/sqlpackage/1033
COPY sqlpackage/Extensions /opt/sqlpackage/Extensions
COPY sqlpackage/en /opt/sqlpackage/en
COPY sqlpackage/DacUnpack.exe /opt/sqlpackage/DacUnpack.exe
COPY sqlpackage/Microsoft.Data.Tools.Schema.Sql.dll/ /opt/sqlpackage/Microsoft.Data.Tools.Schema.Sql.dll
COPY sqlpackage/Microsoft.Data.Tools.Utilities.dll /opt/sqlpackage/Microsoft.Data.Tools.Utilities.dll
COPY sqlpackage/Microsoft.SqlServer.Dac.dll /opt/sqlpackage/Microsoft.SqlServer.Dac.dll
COPY sqlpackage/Microsoft.SqlServer.Dac.Extensions.dll /opt/sqlpackage/Microsoft.SqlServer.Dac.Extensions.dll
COPY sqlpackage/Microsoft.SqlServer.Dac.Extensions.xml /opt/sqlpackage/Microsoft.SqlServer.Dac.Extensions.xml
COPY sqlpackage/SqlPackage.exe /opt/sqlpackage/SqlPackage.exe
COPY sqlpackage/SqlPackage.exe.config /opt/sqlpackage/SqlPackage.exe.config

COPY ./HAS_Database /tmp/HAS_Database

ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=PaSSw0rd

RUN /opt/sqlpackage/sqlpackage /a:Publish /pr:'/tmp/HAS_Database/has.aux.ddbb.dev.publish.xml' /sf:'/tmp/HAS_Database/has.aux.ddbb.dacpac' 
这是我的发布文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName>HAS_ME_AUX_DEV_DEPLOY</TargetDatabaseName>
    <ScriptDatabaseOptions>False</ScriptDatabaseOptions>
    <BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
    <DropIndexesNotInSource>True</DropIndexesNotInSource>
    <DropExtendedPropertiesNotInSource>True</DropExtendedPropertiesNotInSource>
    <ProfileVersionNumber>1</ProfileVersionNumber>
    <BlockWhenDriftDetected>False</BlockWhenDriftDetected>
    <RegisterDataTierApplication>True</RegisterDataTierApplication>
    <TargetConnectionString>Data Source=.;Integrated Security=False;Persist Security Info=True;User ID=sa;Pooling=False;Context Connection=False;Password=PaSSw0rd</TargetConnectionString>
    <VerifyDeployment>False</VerifyDeployment>
    <VerifyCollationCompatibility>False</VerifyCollationCompatibility>
    <ScriptRefreshModule>False</ScriptRefreshModule>
    <ScriptNewConstraintValidation>False</ScriptNewConstraintValidation>
    <PopulateFilesOnFileGroups>False</PopulateFilesOnFileGroups>
    <DisableAndReenableDdlTriggers>True</DisableAndReenableDdlTriggers>
    <DoNotAlterChangeDataCaptureObjects>True</DoNotAlterChangeDataCaptureObjects>
    <DropStatisticsNotInSource>False</DropStatisticsNotInSource>
    <DeployScriptFileName>publish_dev.sql</DeployScriptFileName>
  </PropertyGroup>
</Project>


真的
我和辅助开发人员部署了吗
假的
假的
真的
真的
1.
假的
真的
数据源=。;综合安全=假;持久安全信息=True;用户ID=sa;池=假;上下文连接=False;密码=PaSSw0rd
假的
假的
假的
假的
假的
真的
真的
假的
发布\u dev.sql

dockerfile中的源sqlpackage二进制路径看起来可疑。下载,解压缩到构建上下文目录中名为sqlpackage的目录中,并将该目录复制到容器中,以便在构建中使用

下面是一个适用于我的dockerfile示例:

FROM microsoft/mssql-server-windows-express

COPY ./sqlpackage /opt/sqlpackage/
COPY ./HAS_Database /tmp/HAS_Database

ENV ACCEPT_EULA=Y
ENV SA_PASSWORD=PaSSw0rd

RUN /opt/sqlpackage/sqlpackage /a:Publish /pr:'/tmp/HAS_Database/has.aux.ddbb.dev.publish.xml' /sf:'/tmp/HAS_Database/has.aux.ddbb.dacpac'