0

뷰를 하나만 배포해야하며 각 배포마다 다른보기를 사용해야합니다. Filtering DacPac deployments해야합니다. 내가 상자 옵션을 have improved 밖으로 알지만, 그건 내 요구를 위해하지 않습니다.'AdditionalDeploymentContributors'가 '게시'작업에 대한 유효한 인수가 아닙니다.

데이터베이스는 SqlPackage을 통해 공개되며 이러한 매개 변수는 게시 작업에 대해 유효한 것으로 명시됩니다. 나는이를 사용하는 경우 그러나, 그것은 (빨간색) 오류를 생성합니다 나는 Deploy.ps1 파일에서 다음 명령을 사용

*** 'AdditionalDeploymentContributors' is not a valid argument for the 'Publish' action. 
*** 'AdditionalDeploymentContributorArguments' is not a valid argument for the 'Publish' action. 

을 :

& $sqlpackageFileName /a:Publish /sf:$DacPacFileName /tcs:$ConnectionString /v:RefToOtherDatabase="${OtherDatabaseName}" /pr:$OptionsFromPublishFile /p:AdditionalDeploymentContributors="AgileSqlClub.DeploymentFilterContributor" /p:AdditionalDeploymentContributorArguments=$NordicsDeployFilter 

그것은 이미 얻고 있다고 할 수있다 내 게시 프로필의 옵션. 그러나 PropertyGroup에 넣으면 게시하면 오류가 발생합니다 : Contributor initialization error. 더 이상 세부 정보를 얻을 수 없습니다. , 답장을 보내 주셔서 감사를 그냥 내 의견에 무엇이 추가, 완료 질문을 계속 :

  1. 는 이유는 AdditionalDeploymentContributor에게

편집을로드 할 수 없습니다.

나는 버전 110이라고 생각하는 SQL Server 2012를 사용하고 있습니다. 내 폴더 구조에서 : Microsoft SQL Server/110/DAC/bin 참조하는 .dll을 찾을 수 없습니다. 그것은 Microsoft SQL Server/120/DAC/bin이고 결코 버전이 설치되어 있지 않으므로 Microsoft SQL Server/130/DAC/bin에는 DAC 폴더가 거의 포함되어 있지 않습니다.

  1. 어디에서이 .dll을 추가해야합니까?

구성 파일을 변경하려고하면 오류 Please check if this file is opened in another program.가 발생합니다. SQL Server Windows 서비스를 중지하려고 시도했지만 사용 중이라고 생각했습니다. Process Explorer는 사용중인 파일을 찾을 수 없으며 Openfiles는 열린 파일을 찾을 수 없습니다. 메모장에서 파일을 열어도 ++가 무엇인지 명확하지 않습니다.

  1. 구성 파일을 편집하려면 어떻게해야합니까?

참고 : 당신이 에드의 기여를 사용하고 있기 때문에 비주얼 스튜디오 2013

답변

1

나는 당신이 그 기여자 초기화 오류가있어 의심에 대한 SSDT 도구를 비주얼 스튜디오 2013와 SQL 서버 2012을 사용하고 있습니다 최신 버전의 SqlPackage.exe 배포 기여자는 이전 버전의 DACFx API를 대상으로 작성되었으며 일부 버전 번호가 업데이트되었습니다. SqlPackage.exe.config 파일에 바인딩 리디렉션을 추가하여이 문제를 해결할 수 있습니다. 다음은 MSDN SSDT 포럼 곧 빌드를 가지고 (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ee3f886e-6b5e-4b95-b912-e06354534bf9/sqlpackageexe-version-130-wont-load-additionaldeploymentcontributors?forum=ssdt)

To run against version 130, please modify the SqlPackage.exe.config to add the binding redirect on the Microsoft.SqlServer.Dac.dll and Microsoft.SqlServer.Dac.Extensions.dll. This file can be found right next to SqlPackage.exe.

Example shown in below,

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="10.0.0.0" newVersion="13.0.0.0" /> <bindingRedirect oldVersion="12.0.0.0-13.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.TransactSql.ScriptDom" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0-13.0.0.0" newVersion="13.100.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Dac" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.Dac.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="12.0.0.0" newVersion="13.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>

We started shipping AppLocal version of Microsoft.SqlServer.TransactSql.ScriptDom with DacFx in July; therefore, depending on which version of DacFx you have, if you didn’t see the Microsoft.SqlServer.TransactSql.ScriptDom.dll in the same folder with DacFx, then you don’t need the binding redirect for it. It should be in the GAC already.

+0

즉이 도움이 될 최신 DacFx (nuget를) 사용에 잭 양의 지시입니다! –

+0

고마워, 에드. 다음 버전에서도 이러한 바인딩 리디렉션을 기본적으로 적용합니다. –

+0

고마워요,하지만 몇 가지 문제가 있습니다. 1. 저는 110 버전이라고 생각하는 SQL Server 2012를 사용하고 있습니다. "Microsoft SQL Server/110/DAC/bin"폴더 구조에서 참조하는 .dll을 찾을 수 없습니다. 그것은 내가 가지고있는 파일 경로의 120 버전에 있는데, 130에는 DAC 폴더가 거의 포함되어 있지 않습니다. 2.이 설정 파일을 어떻게 변경합니까? 시도 할 때 "이 파일이 다른 프로그램에서 열렸는지 확인하십시오."라는 메시지가 나타납니다. SQL Server Windows 서비스를 중지하려고했습니다. – MrFox

관련 문제