1 - 不通过 VS,因为 MSBuild for Websites 没有扩展点(据我所知)。Sayed 有一篇很棒的文章,描述了网站与应用程序的处理方式不同。
替代方案 -您可以将要部署的文件复制到新文件夹,然后使用 MSDeploy.exe 命令行工具创建可以部署到服务器的客户 MSDeploy 包。
D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:contentPath=%cd%\DefaultWebSite\website1 -dest:package=DefaultWebSite.zip
Info: Updating MSDeploy.contentPath (MSDeploy.contentPath).
Info: Adding virtual path (D:\temp\DefaultWebSite\website1)
Info: Adding directory (D:\temp\DefaultWebSite\website1).
Total changes: 3 (2 added, 0 deleted, 1 updated, 0 parameters changed, 0 bytes c
opied)
D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package=DefaultWebSite.zip -dest:contentPath="Default Web Site\website2"
Info: Adding MSDeploy.contentPath (MSDeploy.contentPath).
Info: Adding virtual path (Default Web Site\website2)
Info: Adding directory (Default Web Site\website2).
Info: Adding file (Default Web Site\website2\Default.aspx).
Info: Adding file (Default Web Site\website2\Default.aspx.cs).
Info: Adding file (Default Web Site\website2\Web.config).
Total changes: 6 (6 added, 0 deleted, 0 updated, 0 parameters changed, 971 bytes
copied)
2/3 - 是的,您可以将 SQL 包含到 Web 部署包中,但每次部署包时都会部署它。我们发现最好将我们的 SQL 部署分离到它自己的包中,这样我们就可以只在需要时部署它。
这篇文章描述了我们如何处理我们的 SQL 部署 - https://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/