1

我正在尝试创建一个包来部署网站和数据库。

清单.xml:

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

参数.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 提供程序?

4

1 回答 1

1

看起来不可能直接在清单中使用 dbDacFx 提供程序,但有一种解决方法可以使用 msdeploy 创建包。

manifest.xml(应包含完整路径):

<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"
于 2012-11-07T17:45:27.080 回答