TFS 2017-[ProjectName].setParameters.xml和powershell

TFS 2017-[ProjectName].setParameters.xml和powershell,powershell,token,release,webdeploy,Powershell,Token,Release,Webdeploy,我在构建中创建了一个zip包,然后将其部署到不同的机器上。我在Parameters.xml中传递了一些参数 <?xml version="1.0" encoding="utf-8"?> <parameters> <parameter name="WebSiteUserName" description="Please enter the username" defaultvalue="__WebSiteUserName__" tags=""&

我在构建中创建了一个zip包,然后将其部署到不同的机器上。我在Parameters.xml中传递了一些参数

<?xml version="1.0" encoding="utf-8"?>
 <parameters>   
        <parameter name="WebSiteUserName" description="Please enter the username" defaultvalue="__WebSiteUserName__" tags="">
        <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@key='WebSiteUserName']/@value">
        </parameterentry>
        </parameter>
        <parameter name="WebSiteUserPassword" description="Please enter the password" defaultvalue="__UserPassword__" tags="">
        <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/connectionStrings/add[@key='WebSiteUserPassword']/@value">
        </parameterentry>
        </parameter>
        <parameter name="WebSiteDomain" description="Domiain" defaultvalue="__Domain__" tags="">
        <parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/appSettings/add[@key='WebSiteDomain']/@value">
    </parameterentry>
  </parameter>
</parameters>
    </parameters>
它将遍历参数文件,并用环境变量替换参数标记

在我的setParamaters.xml文件中,仅更改网站用户名

<?xml version="1.0" encoding="utf-8"?>
<parameters>
  <setParameter name="IIS Web Application Name" value="Default Web Site/SomeWebsite" />
  <setParameter name="WebSiteUserName" value="username" />
  <setParameter name="WebSiteUserPassword" value="__UserPassword__" />
  <setParameter name="Web.config Connection String" value="SomeValueForConnection" />
</parameters>

我不知道为什么会这样。有什么想法吗?

我想您想从TFS发布定义环境中获取密码

您无法使用访问隐藏字段

$vars = Get-ChildItem -path env:secretVariable
有一种方法,但它只能在TFS VNext构建或发布扩展的上下文中工作

在您的情况下,访问的唯一可能性是将变量设置为脚本参数,如下所示:

-paramsFilePath $(paramsFilePath) -password $(secretVariable)
在脚本中添加如下参数

param(
   [string]$paramsFilePath,
   [string]$password 
)

谢谢你的回答,但我以前试过,运气不好:我相信它能奏效。我以后再试试。目前我没有访问TFS的权限。我检查了它,它工作正常。使用Write Verbose$password显示变量的值,然后可能我在其他地方遇到了问题;无论如何,谢谢你的回答。
param(
   [string]$paramsFilePath,
   [string]$password 
)