【问题标题】:Using parameters.xml in Visual Studio Online Releases在 Visual Studio Online Releases 中使用 parameters.xml
【发布时间】:2015-12-03 15:14:47
【问题描述】:

我正在尝试在 Visual Studio Online 中为 Azure 网站设置版本。不幸的是,我无法通过这个使用parameters.xml 设置web.config 参数。

据我所知,正在使用不支持 parameters.xml 转换的 powershell 脚本 Publish-AzureWebsiteProject。

有没有办法做到这一点?我不想在我的代码中存储生产连接字符串。

提前谢谢你。

编辑:更多细节:

我有一个 web.config 的网站项目如下:

<appSettings>
     <add key="SampleSetting" value="ABC" />
</appSettings>`

然后我有以下内容的parameters.xml文件:

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
  <parameter name="SampleSetting" description="This is sample setting" defaultvalue="DEFAULT" tags="">
    <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='SampleSetting']/@value">
    </parameterentry>
  </parameter>
</parameters>

我尝试将“附加参数”设置为:

-SampleSetting "$(SampleSetting)"

并在配置选项卡“SampleSetting”中设置为“FGH”。

当我运行发布时,我收到以下错误:

##[error]A parameter cannot be found that matches parameter name 'SampleSetting'.

正在运行以部署 azure 网站的命令是:

 Publish-AzureWebsiteProject -Name "sheeplapublishertests" -Package        "C:\a\31c60136a\SampleWebAppReleaseBuild\SampleWebAppBuild\SampleWebApp\obj\Debug\Package\SampleWebApp.zip" -SampleSetting "FGH"

【问题讨论】:

  • 实际上,msdn.microsoft.com/en-us/library/azure/dn722468.aspx 声明(在示例 5 中)可以提供动态参数。但是如何做到这一点呢?
  • 刚刚用Parameters.xml试了一下,网站部署到Azure后web.config中的值更新成功。使用Parameters.xml设置值是否有报错提示?

标签: tfsbuild azure-devops


【解决方案1】:

您可以使用 Additional Arguments 字段来传递 dynamic parameter,这将覆盖 Web.Config 中的那些。

假设您想用连接字符串覆盖“DefaultConnection”字段。

将连接字符串保存为发布定义的配置部分中的安全字符串。您可以勾选右侧的小锁符号以将配置变量标记为安全。

然后在 Azure Web App Deployment 的 Additional Arguments 部分,可以指定-DefaultConnection $(DefaultConnection)

您可以在 Additional Arguments 字段中传递多个参数。

【讨论】:

  • 感谢您的回答 - 我已经尝试过了,但没有成功。详情请查看我编辑的问题。
【解决方案2】:

您还可以将产品连接字符串存储在 Azure 中。在此之后,您只需在 web.config 文件中放置一个虚拟字符串。 Azure 将自动覆盖连接字符串。详情请查看this instruction

【讨论】:

  • 实际上,构建日志中有如下消息:2015-12-03T14:46:38.2155549Z Adding declared parameter 'SampleSetting'.。我想这应该可行:/
  • 另外——我也需要这样的解决方案来使用云服务——我希望自动构建和发布能够解决这个问题。看来,它不起作用:/
  • 不幸的是,我的问题中提供了一个错误 - ##[error]A parameter cannot be found that matches parameter name 'SampleSetting'. :/我将尝试进一步挖掘以找出我做错了什么。你有任何可能有帮助的链接吗?谢谢!
  • @AdamSobaniec 甚至在没有指定 -SampleSetting "$(SampleSetting)" 参数的情况下显示错误消息?
  • 我只是尝试使用“Publish-AzureWebsiteProject”命令在我的本地 PC 上部署网站并获得相同的结果。此功能似乎存在一些问题。与网页的第一行一样,它表示“[此主题为预发布文档,在未来版本中可能会发生变化。空白主题包含在占位符中。]”。您可能需要等待新版本才能尝试此功能。目前,我建议您将 appsettings 值存储在 Azure 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
  • 2016-05-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
相关资源
最近更新 更多