问题标签 [msdeploy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
16930 浏览

msbuild - _CopyWebApplication 与 web.config 转换

我试图让我的 Web 应用程序在执行发布构建时自动发布。我正在使用 _CopyWebApplication 目标执行此操作。我将以下内容添加到我的 .csproj 文件中:

这有效,但有一个问题。此输出与在 Visual Studio 中使用“发布”菜单项时生成的输出之间的区别在于,使用 MSBuild 方法时,Web.Release.config 转换未应用于 Web.config 文件。相反,Web.config、Web.Release.config 和 Web.Debug.config 都被复制。

任何想法表示赞赏。

0 投票
1 回答
2245 浏览

visual-studio - 如何从命令行使用 Visual Studio 2010 RC“一键发布”?

我已经运行了 VS 2010 RC,并在其中设置了两个发布配置文件,一个用于发布到登台服务器,一个用于开发人员测试箱。它工作得很好,但我想将部署到我们的开发服务器放入我们的构建服务器并在签入时运行它。

我正在寻找一个 MS Build 目标或我可以通过 MS Build 调用的命令,我可以在构建过程结束时进行部署。到目前为止,我想出了;

这几乎可以工作,除了它假设我的服务器在 IIS 中有一个用于 Web 部署服务的 SSL 连接(它只有端口 80,因为它在内部网络上)。我知道这一点,因为我得到了错误;

您可以从错误中看到它已转到https://myserver而不是http://myserver

MS Build 本身似乎调用了一个 DLL 来执行此操作,因此我无法监视参数,并且没有有关 MsDeployServiceUrl 的文档。

0 投票
1 回答
1915 浏览

iis - 使用 MSDeploy 将站点的 *new* DestinationBinding 添加到包

我正在使用带有 MSDeploy 的暂存模型将我们的几个站点部署到网络场。这些站点仅在临时框上的 IIS 中配置,然后使用 MSDeploy 从头开始​​构建目标 Web 服务器。

暂存框使用自己的绑定(即没有标题条目、不同的 IP/端口和没有主机标题)用于将要运行的站点。当我部署它们时,我首先有一个用于准备参数化包(使用-declareParamFile开关)的 xml 文件,它声明参数如下:

因此,在上面的 XML 中,您可以看到暂存站点托管在端口 17000 上,因为该match属性设置为匹配具有该值的绑定。

然后,当我部署到每个实时站点时,我使用不同的参数 XML,为该机器指定正确的主机头和 IP - 我使用 -setParamFile 开关应用它。这是其中之一的示例。

因此,因为原始参数被声明为与已知绑定之一匹配 - 我可以用我实际希望它在每个实时服务器上的绑定替换该绑定。

我现在要做的是部署站点并向其添加的目标绑定,这些绑定包含我们拥有的不同 TLD - 即 site.com、site.co.uk、site.ca 等,它们都绑定在同一个 IP 地址上和港口。

想要这样做的原因是:

  • 我们有一个要部署的新站点,它需要一个不同的主机名,但我们不想给它自己的 IP 地址(这里的 IP 用完了!)但让它与现有站点共享 IP服务器已经有了。
  • 这意味着将特定的主机名绑定添加到已经存在的站点,而不是让它响应任何主机名。
  • 我们目前有四个域名指向现有站点的负载平衡 IP(.com、.us、.ca、.com.au)。目前它可以工作,因为 Web 服务器不关心主机头 - 但是当新站点使用相同的 IP 时,它会,并且其他域名将不再工作。

问题是我认为似乎没有任何方法可以添加此类信息。我尝试setParameter在第二个 XML 中添加多个元素,但这只会产生重复覆盖绑定的效果,最后一个是最终的赢家。

一种解决方案是为暂存框中的每个站点添加“占位符”绑定,它们代表每个域名、端口等的目标外部绑定;然后我修改这两个参数文件以将这些绑定替换为真实的。

但对我来说,这感觉完全错误——那将是对暂存盒进行建模以适应实时部署;应该反过来。

是否可以使用 MSDeploy 实际添加站点绑定(如果可以,如何添加?),还是仅支持替换?

0 投票
3 回答
2755 浏览

teamcity - 如果出现错误,如何解析 msdeploy 的输出并导致 TeamCity 构建失败?

我正在使用从 TeamCity 运行的 msdeploy.exe 将 ASP.Net 项目部署到登台服务器,但如果在退出时总是返回 0 状态,即使它引发了几个错误,也会受到严重影响。这意味着错误的部署不会失败,并且看起来一切正常。

所以我需要解析输出并引发错误,有没有简单的方法可以做到这一点?或者,有没有很难做到这一点的方法?

您可以从下面的 TeamCity 构建日志中看到正在发生的事情(错误,但由于 0 退出状态而继续)。

0 投票
2 回答
4915 浏览

visual-studio-2010 - 您如何将 MS Deploy 与 VS2010 一起使用?

我有VS2010,并且我已经打开了一个网站。我现在如何使用 MS Deploy 部署到可以安装在远程 IIS 站点中的 zip 文件?

我已经搜索了所有菜单选项,但似乎找不到从哪里开始。

提前致谢

0 投票
1 回答
6843 浏览

iis-7 - MSDeploy 仅将配置从 IIS 6 迁移到 7

我们在 IIS 6 服务器上有 19 个网站,其中许多有许多“虚拟”目录。我正在尝试将整个事情迁移到另一台服务器上的 IIS 7。

按照http://learn.iis.net/page.aspx/427/migrate-a-web-site-from-iis-60-to-iis-70/上的说明,我尝试了以下命令行执行:

它似乎一直在工作,直到我收到“磁盘上没有足够的空间”错误。您会注意到 D 盘是软件包的目标位置,并且日志有足够的空间(网站的所有资源大约 5gb,驱动器有 200+)。虽然 C 驱动器的大小有限(6Gb),但这可能是问题所在。

无论如何,我认为最好的办法是尝试迁移设置/配置,而不是实际资源。我们可以使用我们的 NAnt 构建脚本轻松地将资源部署到新服务器,所以这不是问题。然而,手动完成所有正确的配置将是一项挑战。

那么,有没有办法使用 msdeploy(或任何其他工具?)仅导出/打包 IIS 6 服务器的配置/选项?

0 投票
7 回答
50131 浏览

msbuild - 未找到 MSBuild 目标包

我想打包我的 VS2010 Web 应用程序项目,以便使用 msdeploy 进行部署。在开发机器上,我可以使用:

但是在我的构建服务器上,我收到了这个错误:

错误 MSB4057:项目中不存在目标“包”。

我在构建服务器上缺少什么?

0 投票
1 回答
6482 浏览

msbuild - 让 MSDeploy 在我们的构建/集成服务器上工作 - 是否需要升级 MSBuild?

我们有一个我认为是相当标准的构建过程: 1. 开发人员:签入代码 2. 构建:轮询 repo,查看更改并开始构建:3. 构建:从 repo 更新,使用 MSBuild 构建,运行单元使用 nunit 进行测试,4. 构建:创建安装程序包

我们的安全团队允许我们从构建服务器拉取数据,但不允许构建服务器推送。所以我们通常 rdp in,d/l 安装程序,然后运行它们,这排除了灵活的部署服务,所以我需要生成包。我想使用 MSDeploy,除了我们有以下问题:

  1. 我们在 .net 3.5 上,使用 MSDeploy 的 MSBuild 目标(包)需要 4.0。除了.net 4.0 RC,我还需要安装什么吗?(MSBuild 会成为升级的一部分吗?)
  2. 当我使用 MSDeploy 生成包时,我发现我没有只有 1 个文件。有一个 zip、deploy.cmd、SourceManifest.xml 和 SetParameters.xml。所有其他文件的用途是什么,为什么它们不都在“包”中?
  3. 听起来好像您可以通过告诉系统查看工作中的 IIS 站点来创建包。但是,如果这些包是从 CI 环境构建的,那么您在这里基本上不走运吗?感觉就像他们为从他们的开发环境部署的小规模开发人员设计了其中的一些。这是一个很好的用例,但我很想看看每个人的企业体验如何使用该工具

有什么建议么?

0 投票
8 回答
38453 浏览

visual-studio-2010 - 如何让 TFS2010 通过 MSBUILD 为我运行 MSDEPLOY?

Vishal Joshi在此处提供了一个出色的 PDC 演讲,其中描述了 Visual Studio 2010 中的新 MSDEPLOY 功能 - 以及如何在 TFS 中部署应用程序。(还有来自Scott Hanselman 的精彩演讲,但他没有进入 TFS)。

您可以在 TFS2010 中使用 MSBUILD 调用 MSDEPLOY 以将您的包部署到 IIS。这是通过 MSBUILD 的参数来完成的。

该演讲解释了一些命令行参数,例如:

但是这方面的文档在哪里 - 我找不到任何文件?

我一整天都在试图让它工作,但不能完全正确并不断出现各种错误。如果我运行包的cmd文件,它会完美部署。如果我通过 Visual Studio 运行 WebDeploy,它也可以完美运行。

但我想通过msbuild使用这些参数来运行整个部署,而不是单独调用msdeploy或运行包.cmd文件。我怎样才能做到这一点?

PS。是的,我确实有Web Deployment Agent Service跑步。我还有在 IIS 下运行的管理服务。我试过两者都用。


我正在使用的参数:

给我 :

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (2660):VsMsdeploy 失败。(远程代理(URL https://staging.example.com: 8172/msdeploy.axd?site=staging.example.com)无法联系。确保远程代理服务已安装并在目标计算机上启动。)错误详细信息:远程代理(URL https://staging.example。 com:8172/msdeploy.axd?site=staging.example.com)无法联系。确保在目标计算机上安装并启动了远程代理服务。收到了不受支持的响应。响应标头“MSDeploy.Response”为“”,但应为“v1”。远程服务器返回错误:(401) Unauthorized。

0 投票
1 回答
1588 浏览

tfs - 如何在 TFS2010 上成功构建时执行命令?

我已经启动并运行了 TFS2010 并构建了一个webdeploy部署包。

进入我的目录:

我得到以下两个目录:

我要做的就是在成功构建时运行以下命令 - 以部署站点:

如何自定义构建过程模板以实际运行该包?在 TFS 2010 下,您必须使用流程模板(不再需要 TFSBuild.csproj 内容)。

我试过复制DefaultProcessTemplate.xaml文件,但是当我打开它时它基本上会杀死我的 Visual Studio。

如何手动编辑 .xaml 以在成功构建时运行这个简单的命令