我正在编写一个使用EF7定位.Net Core的ASP.NET 5应用程序。当我完成后,我想将应用程序发布到特定于平台的安装程序,该安装程序在运行时将安装服务,根据SQL Server的用户输入凭据部署数据库。该服务将自托管ASP.NET应用程序。
这可能吗?我将如何实现这一目标?
谢谢!
答案 0 :(得分:0)
我们使用MSDeploy at work部署我们的所有组件:Web应用程序,Windows服务,计划任务,SQL数据库等。
您可以使用以下命令package up the service code:
msdeploy -verb:sync -source:dirPath=/path/to/service -dest:package=servicePackage.zip -verbose
此命令将其部署到目标:
msdeploy -verb:sync -source:package=/path/to/service -dest:package=servicePackage.zip -verbose
为SQL数据库使用数据库项目并创建要发布的DacPac。您可以使用MSDeploy to publish the DacPac:
MSDeploy –verb: MSDeploy-verb –source:dbSqlPackage="db.dacpac"[,dbSqlPackage-source-parameters] –dest:dpSqlPackage="TargetConnectionString"[,dbSqlPackage-target-parameters]
最后使用Manifests将它全部包装到一个MSDeploy包中。
关于数据库的用户输入值,我将使用WebDeploy Parameterization文件来定义变量并将它们应用于数据库部署。这些参数化文件可用于通过MSDeploy进行非Web部署。然后编写一些PowerShell来包装MSDeploy命令以进行部署,以提示用户输入并编辑SetParameters文件。