如何通过命令行将 MSDeploy 样式参数传递给 MSBuild?

2024-02-03

我正在设置 TeamCity 以将我们的网站项目应用程序(使用 *.wdproj)和 Web 部署应用程序部署到 IIS。

我有一个生成配置,它使用 MSBuild.exe 和 MSDeployPublish 来生成然后部署应用程序。

我们现在希望将应用程序部署到多个目标环境,因此需要一种方法来根据目标环境提供不同的设置。

我已将parameters.xml 文件添加到Web 部署项目,并验证了此处设置的参数是否一直通过目标IIS 服务器并正确应用 - 太棒了!

现在我想做的是每个环境有不同的参数设置。我希望可以使用 MSDeploy.exe -setParam 参数之类的东西为每个环境指定不同的值,但是我找不到通过命令行将参数值输入 MSBuild 的方法。

我怀疑我可能需要执行以下操作之一:

  1. 将 MSBuild 和 MSDeploy 拆分为单独的构建步骤。

  2. 在管道中的某个位置配置一个任务,以获取parameters.something.xml的n个版本中的1个并将其移动到parameters.xml中,以便管道的其余部分拾取它。

我正在寻找最简单的方法来推进这一点,欢迎任何建议。

作为参考,这是我现在正在尝试的命令:

msbuild /target:MSDeployPublish MySite_deploy.wdproj /P:Configuration=Debug
/P:DeployOnBuild=True /P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=www.myserver.com:8172/MsDeploy.axd
/P:AllowUntrustedCertificate=True /P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True /P:UserName=MyUser /p:Password=MyPassword
/P:DeployIisAppPath=www.myserver.com/MySite
/P:ServerURL=http://www.tryingtoforcethis.com

除了 ServerURL 的值(我在parameters.xml 中定义的参数)没有进入目标站点之外,它工作得很好。然而,我在parameters.xml 中指定的默认值是。所以我知道参数正在工作,我只是不知道如何将它们添加到 msbuild 命令行中。


好吧,我认为简短的答案是,使用 MSBuild 4.0 和 VS2010,您不能仅通过调用 MSBuild 将任意参数传递到 MSDeployPublish 中。

我发现这些帖子很有帮助:

http://forums.iis.net/t/1167657.aspx/1 http://forums.iis.net/t/1167657.aspx/1——陈明的评论

http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx http://www.hanselman.com/blog/TinyHappyFeatures3PublishingImprovementsChainedConfigTransformsAndDeployingASPNETAppsFromTheCommandLine.aspx- 底部 Richard Szalay 的评论

阅读完这些内容,并在 Microsoft.Web.Publishing.targets 文件中筛选了一段时间试图找到“方法”后,我最终决定在源代码管理中的项目文件夹中保存多个Parameters.xml副本,并根据他们的环境例如:

  • 参数.Test.xml
  • 参数.Staging.xml
  • 参数.Live.xml

然后,在打包和部署之前,我只需将这些文件之一复制到Parameters.xml 中,管道的其余部分就会拾取它 - 完成!

顺便说一句,由于似乎是某种文件访问问题,我在获取parameters.xml副本和后续清理以在单个MSBuild.exe调用中工作时遇到了临时问题,我在这里详细说明了这一点:

MSBuild.exe 复制任务无法正常工作,除非该文件的版本已出现在目标中 https://stackoverflow.com/questions/15587678/msbuild-exe-copy-task-not-working-properly-unless-a-version-of-the-file-already

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过命令行将 MSDeploy 样式参数传递给 MSBuild? 的相关文章

  • 对超过 UInt16 屏障的程序集信息进行版本控制

    过去 我通常使用变更集或 svn 编号来对二进制文件进行版本控制 例如1 1 123 3 其中较大的数字是来自源代码控制系统的变更集或版本 然而 对于我现在使用的系统 我们已经远远超过了类似 70000 变更集的 uint 障碍 因此在用作
  • 构建失败 - TFS2008 上的 VS2010 解决方案

    我已将 VS2008 ASP NET MVC 解决方案迁移到 VS2010 MVC2 NET 4 0 该解决方案在本地构建 并且所有单元测试都通过 我们的 TFS 服务器仍然是 TFS2008 我在通过 CI 构建时遇到问题 项目全部构建成
  • 无法为 Android 源代码创建 Xamarin 组件

    我已经使用了命令 xamarin component exe package C cmp AndroidComponent component 用于创建 Xamarin 组件 在构建示例 android 项目时 它显示以下错误 我已使用命令
  • 是否可以在不安装的情况下使用 MSBuild 扩展包?

    有没有一种方法可以将 MSBuild 扩展包与 本地 引用一起使用 而不需要运行安装程序 换句话说 您能否将目标存储在解决方案项目文件夹中 以便每个开发人员都不必安装它 你必须申报财产 扩展任务路径 在任务的导入语句之前 例如看一下
  • 如何将自定义 nuget feed 添加到 TeamCity 构建?

    我使用 Teamcity 创建了一个 Nuget 服务器 在互联网上的虚拟机上运行 并创建了将包发布到其中的构建 我还有另一个项目需要使用该包 该项目也是基于 teamcity 构建的 在我本地的 Visual Studio 上 我添加了
  • 无法使用 Visual Studio 2017 RC 进行 XUnit 测试

    在我的一生中 我无法从新的基于 msbuild 的 Visual Studio 2017 中进行单元测试netcoreapp1 0xunit 项目模板 要求单元测试既可以在 Visual Studio 内部 对于开发人员 也可以在 Visu
  • 如何解决 CruiseControl.NET 中 任务中的“只能指定一个项目”错误

    我正在尝试以相当直接的方式使用 CruiseControl NET 版本 1 3 0 2918 中的任务
  • TFS 2017 - 构建服务器不构建 Visual Studio 2017

    上周在我的构建服务器上升级 Visual Studio 2017 后 MS Build 15 0 不再使用 因此 每当我尝试编译使用新功能的 Visual Studio 2017 项目时 它们都会失败 构建日志中的警告是 找不到 Visua
  • 英特尔编译器使用错误的标头

    我试图找出为什么Intel Compiler 18 0 已安装after我的 Visual Studio 2017 安装使用的头文件MSVC 而不是它自己的 因为它会导致错误 一个简单的 include
  • 编译 XNA 项目时,无法执行请求的操作错误

    第二次编译项目时 出现以下错误消息 我必须关闭 VS 2010 重新加载时它会编译 如果我做出改变 那么问题又回来了 无法复制文件 obj x86 Debug MyFile dll 无法对打开的用户映射部分的文件执行请求的操作 我因为另一个
  • 错误:在 Google 应用引擎上部署节点 js 时找不到模块“/workspace/server.js”

    经过一周的搜索 我无法找到适用于我的 Node js 应用程序的应用程序引擎部署问题的解决方案 我已经用这个替换了原来的代码Express 的 hello world 示例 https expressjs com en starter he
  • 以编程方式调用 EntityDeploy 构建任务

    我正在使用 Roslyn 来编译 发出和运行 C 源代码 但是 在面对使用 EntityFramework 的项目时 我遇到了限制 似乎简单地发出编译是不够的 因为有一个EntityDeploy在 DLL 发出后对其进行操作的构建任务 我相
  • 使 Web.config 转换在本地工作

    我想让 web config 转换在本地工作 但显然这些转换仅在进行部署时发生 有谁知道一种方法来运行 msbuild 目标 TransformWebConfig 而不需要经历 重建 过程 并指定和输出目录来吐出转换后的 web confi
  • C# 在构建期间重命名命名空间

    我正在寻找一种在构建过程中重命名第 3 方程序集中的命名空间的方法 以及用户代码中相应的 using 语句 我搜遍了福迪的织工 但没有找到这样的东西 有一个对 ILRepack 的拉取请求可以完成确切的事情 但它似乎已经过时并且没有通过 C
  • MSBuild:OutputPath 目录为空

    我想部署我的 ASP NET MVC 站点并具有以下脚本
  • 如何使用 MsBuild v15 构建 C++ 项目?

    我在 Visual Studio 2017 中使用 NuGet 包管理器安装了以下程序集 Microsoft Build Microsoft Build Framework Microsoft Build Utilities Core 一切
  • 在 Visual Studio 中为项目创建目标 OBJ 文件夹

    是否可以像创建 BIN 文件夹一样创建目标 OBJ 文件路径 您可以在项目属性中设置输出路径 示例路径是 Bin 调试 Windows Phone 7 Bin 调试 NETMF Bin 调试 这里的一个用例是 如果我有多个针对不同平台的项目
  • TeamCity 中代码覆盖率的属性过滤器语法

    有人知道从 Teamcity 的覆盖范围中排除代码的语法吗 我在某些方法上使用 ExcludeFromCodeCoverageAttribute 并希望排除这些方法 它在 Visual Studio 中运行良好 但我不明白如何在 TeamC
  • 具有依赖项的自定义 MSBuild 任务

    我编写了一个使用第三方程序集的 MSBuild 任务 当我在项目中使用该任务时 MSBuild 抱怨它无法加载第三方程序集 毫不奇怪 我应该将第三方程序集放在哪里 以便 MSBuild 可以使用它们 我尝试向它们添加项目引用但没有成功 我不
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual

随机推荐

  • PHP 中的 __call、__callStatic 和调用范围

    我最近读到有关在 PHP 中调用作用域和作用域解析运算符 的内容 有两种变体 实例调用和静态调用 考虑以下听力
  • sencha 中的按钮背景颜色

    我是 sencha touch 的新手 我们如何将按钮的背景颜色更改为白色 我有一个按钮 每个角都有两个图像 我希望按钮是纯白色的 我尝试使用这样的CSS quest background url images quest jpg no r
  • 只允许在 JTextField 中输入数字和符号 (-)

    我正在尝试创建一个数学测验 我只希望用户能够输入数字 无论它们是负数还是正数 有什么办法可以做到吗 我曾考虑过使用正则表达式 但听说它们不好用 我尝试使用按键侦听器 但是如果用户粘贴怎么办 我尝试解析字符串以获取整数 但负号将不起作用 有任
  • 如何在 VB.NET 中使用 RhinoMocks 设置只读属性的返回值?

    我在 VB NET 中使用 RhinoMock 需要设置只读列表的返回值 这就是我的want要做 但不起作用 dim s Rhino Mocks MockRepository GenerateStub of IUserDto s Id gu
  • 如何在不启用USB调试的情况下使用adb tcpip?

    我已经阅读了很多关于 adb 和 tcpip 模式的文章 并且我可以创建无线 adb 连接 但前提是打开 USB 调试 我使用它的方式是这样的 USB调试已启用 call adb tcpip在计算机上 从 USB 切换到 tcpip 模式
  • 如何在Windows后台持续运行Python脚本?

    我创建了一个脚本 将文件从一个文件夹移动到另一个文件夹 但由于原始文件夹是下载文件夹 我需要它始终在后台运行 我还有一个标准批处理文件 如下所示 py C Python Scripts moveDLs py 我在用着Windows 10 我
  • 在soap标头中添加wsse:UsernameToken

    我正在开发 SOAP 客户端 我的 WSDL URL 是http localhost 8080 soap getMessage wsdl 这需要以下标头来指定用户名和密码
  • 句子分类(Categorization)

    我一直在阅读有关文本分类的内容 并找到了几个可用于分类的Java工具 但我仍然想知道 文本分类与句子分类相同吗 有没有专注于句子分类的工具 文本分类 和 句子分类 之间没有正式的区别 毕竟 句子是一种文本 但一般来说 当人们谈论文本分类时
  • mediaelement.js 同一页面上有多个视频?

    我试图将多个视频放在一个页面上 但是当我单击一个视频进行播放时 它们都会播放吗 还有其他人经历过吗 这是我使用的代码片段 video audio mediaelementplayer success function player node
  • 将每周时间系列扩展到每日

    我有一个每周值的 xts 时间序列 Jan 4 2004 0 99 Jan 11 2004 1 11 Jan 18 2004 1 06 我想将其转换为每日值 Jan 4 2004 0 99 Jan 5 2004 0 99 Jan 6 200
  • Windows Phone 8.1 与 Windows Phone Silverlight 8.1 - MSDN 上是否缺少文档?

    我正在尝试将一些 NET 代码移植到 Windows Phone 8 1 不是 Silverlight 库 并且已经用头撞墙一段时间了 现在试图理解为什么System Net IPAddress不可用 根据Windows Phone MSD
  • 线程“main”中的异常 java.lang.NoSuchMethodError: scala.Predef$.refArrayOps( [重复]

    这个问题在这里已经有答案了 我是 scala 新手 INTELLIJ 中的代码出现以下错误 任何人都可以帮助解决它 import org apache spark SparkContext SparkConf object wordcoun
  • 将 R 代码转换为 C 代码

    出于速度原因以及将其打包为 exe 的能力 我正在考虑将 R 脚本转换为 C 代码 我是 C 新手 我的问题是用 C 语言会明显更快吗 速率限制步骤是一种必须对大向量多次应用的排序算法 我不确定 R 中的矢量化功能是否会对此有所帮助或减慢速
  • 如何计算二维对数色度?

    我的目标是去除图像中的阴影 我使用 C 和 OpenCV 当然 我缺乏足够的数学背景 而且不是以英语为母语 这让一切变得更难理解 在阅读了消除阴影的不同方法后 我发现了应该对我有用的方法 但它依赖于他们所谓的 二维色度 and 二维对数色度
  • Java 可以抛出空引用异常吗? [复制]

    这个问题在这里已经有答案了 考虑这段代码 try catch MyException e Can e be null here 鉴于null在Java中是一个类型化的空引用 上面的catch块是否有可能被输入e as null e永远不会n
  • 是否允许实现将公共成员添加到标准类型?

    C 标准库实现是否允许将公共 和受保护 成员添加到标准类型的接口 N3797 17 6 5 5 member functions 2 说 实现可以在类中声明附加的非虚拟成员函数签名 通过将具有默认值的参数添加到成员函数签名中 Note 实现
  • 什么是 std::identity 以及如何使用它?

    我只是想知道 std identity 的目的是什么 我在网上找不到任何有用的东西 我知道它是如何实现的 template
  • Mono 中的 NameResolutionFailure,但 .NET 中则不然

    我正在使用 C 发出 HTTPS POST 请求 与 HTTP 相同的问题 byte byteArray Encoding UTF8 GetBytes var1 blah var2 hah HttpWebRequest request Ht
  • 如何在脚本得分中使用字段的最大得分 - ElasticSearch

    我正在使用 ElasticSearch 2 4 0 使用 script score 我正在计算自定义分数 例如 script return doc field a value 0 5 score 0 5 我想要类似的东西 对 field a
  • 如何通过命令行将 MSDeploy 样式参数传递给 MSBuild?

    我正在设置 TeamCity 以将我们的网站项目应用程序 使用 wdproj 和 Web 部署应用程序部署到 IIS 我有一个生成配置 它使用 MSBuild exe 和 MSDeployPublish 来生成然后部署应用程序 我们现在希望