2012-09-18 1 views
1

웹 사이트 및 데이터베이스를 배포 할 패키지를 만들려고합니다.매니페스트 파일에서 dbDacFx 사용

manifest.xml :

<sitemanifest> 
    <iisApp path="webApp" /> 
    <dbDacFx path="database.dacpac" /> 
</sitemanifest> 

parameters.xml :

<parameters> 
    <parameter name="appPath" defaultValue="dev.local" tags="iisapp"> 
    <parameterEntry kind="ProviderPath" scope="iisApp" match="webApp" /> 
    </parameter> 
    <parameter name="dbServer" defaultValue="localhost" tags="dbServer,sql" /> 
    <parameter name="connectionString" defaultValue="Server={dbServer};Initial Catalog=MyDatabase;Integrated Security=True;" tags="hidden,sql,sqlconnectionstring"> 
    <parameterEntry kind="ProviderPath" scope="dbDacFx" match="database.dacpac" /> 
    <parameterEntry kind="XmlFile" scope="webApp\\Web.config" match="//connectionStrings/add[@name='DB']/@connectionString" /> 
    </parameter> 
</parameters> 

그리고 나는 다음과 같은 오류 얻을 :

There is no stream data associated with 'database.dacpac'. 

이 dbDacFx을 사용할 수를 매니페스트의 제공자 티?

답변

1

매니페스트에서 dbDacFx 공급자를 직접 사용할 수없는 것처럼 보이지만 msdeploy를 사용하여 패키지를 만드는 해결 방법이 있습니다.

<sitemanifest> 
    <iisApp path="C:\temp\my-test\webApp" /> 
    <dbDacFx path="C:\temp\my-test\database.dacpac" /> 
</sitemanifest> 

문제 명령 :

msdeploy.exe^
-verb:sync^
-source:manifest=C:\temp\my-test\manifest.xml^
-dest:package=C:\temp\my-test\package.zip^
-declareParam:name=appPath,defaultValue="dev.local",tags="iisapp",kind=ProviderPath,scope="iisApp",match="C:\\temp\\my-test\\webApp"^
-declareParam:name=dbServer,defaultValue="localhost",tags="dbServer,sql"^
-declareParam:name=connectionString,defaultValue="Server={dbServer};Initial Catalog=MyDatabase;Integrated Security=True;",tags="hidden,sql,sqlconnectionstring"^
-declareParam:name=connectionString,kind=ProviderPath,scope=dbDacFx,match="C:\\temp\\my-test\\database.dacpac"^
-declareParam:name=connectionString,kind=XmlFile,scope="webApp\\Web.config",match="//connectionStrings/add[@name='DB']/@connectionString" 

새로운 manifest.xml은 (에게 전체 경로를 포함한다)