Web部署 - 如何使用所选项创建包

时间:2016-04-28 07:39:09

标签: visual-studio-2013 web-deployment webdeploy web-deployment-project microsoft-web-deploy

我想尝试一下网络部署'部署我们网站的方法。在我提出问题之前,我想提供一些有关当前部署过程的详细信息:

  1. 这是一个企业网站&托管在多个服务器上(具有持续部署)。

  2. 这些文件不在'发布'模式,但在'调试'模式。

  3. 我们手动复制仅粘贴当前分配相关文件。比如说,本周将部署Accounts模块,然后要部署的文件为
    / mysite的/ App_Code文件/型号/的 accounts.cs
    / mysite / pages / accounts.aspx accounts.aspx.cs

    3个文件将手动复制到所有服务器中的相应文件夹中。这是多年来的程序。

  4. 项目' mysite'是一个ASP.NET网站'而不是ASP.NET Web应用程序' (在VS2013中),这意味着这些选项不可用 - Package / Publish Web&打包/发布SQL
  5. 我在开发系统中创建了包,
    (i)在Visual Studio中使用发布选项(Web部署包)以及 (ii)在IIS中导出应用程序(提供选择文件的选项)

    1. 是否可以使用VS发布功能仅为我需要的文件(,在这种情况下为accounts.cs,accounts.aspx,accounts.aspx.cs )创建一个包。
    2. 是否可以在包中包含自定义SQL脚本文件。 (使用IIS或VS)
    3. 如果Q2的答案为“是”,那么它应该只执行一次,而不是针对所有服务器。因为只有一个DB服务器。怎么办呢。
    4. 我还没有去安装包部件。

1 个答案:

答案 0 :(得分:1)

1 - 不通过VS ,因为MSBuild for Websites没有扩展点(我知道)。 Sayed有a great post,它描述了网站的处理方式与应用程序不同。

备用 - 您可以将要部署的文件复制到新文件夹,然后使用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/