Xamarin.android 是否可以从另一个生成变量的值构造vsts生成变量?

Xamarin.android 是否可以从另一个生成变量的值构造vsts生成变量?,xamarin.android,azure-pipelines,Xamarin.android,Azure Pipelines,我们需要将xamarin android应用程序构建为多构建配置。我们有不同的密钥库文件来从不同的构建配置中调用应用程序。这意味着在构建时,我们需要选择正确的密钥库文件和密码。我们已经设法使用字符串插值来引用密钥库文件的路径。关于密码,这是很棘手的 考虑下面的例子 多版本配置 试验 发展 戳 下面的构建变量包含各个密钥库文件的密码 keystrepasswordtest keystrepassworddev keystrepasswordprod 现在在buildvariable部分,我们定义了

我们需要将xamarin android应用程序构建为多构建配置。我们有不同的密钥库文件来从不同的构建配置中调用应用程序。这意味着在构建时,我们需要选择正确的密钥库文件和密码。我们已经设法使用字符串插值来引用密钥库文件的路径。关于密码,这是很棘手的

考虑下面的例子

多版本配置 试验 发展 戳 下面的构建变量包含各个密钥库文件的密码 keystrepasswordtest keystrepassworddev keystrepasswordprod

现在在buildvariable部分,我们定义了另一个build变量,其值如下 KeyStorePassword------$(“KeyStorePassword$(构建配置)”)

有人能帮我吗?这可以通过shell脚本完成,但我们需要一个安全的解决方案,因此决定使用VSTS构建服务器功能


我们使用的是TFS 2015服务器,构建在Mac Mini build agent上运行。

是的,您可以使用shell脚本任务根据不同的构建配置分配不同的密码

shell脚本如下所示:

#!/bin/bash

temp=$(echo "KeyStorePassword$BuildConfiguration")
if [ $temp = "KeyStorePasswordDev" ]
then
{ 
# what you want to set password
}
elif [ $temp = "KeyStorePasswordProd" ] 
then
{ 
# what you want to set password
}
elif [ $temp = "KeyStorePasswordTest" ] 
then
{ 
# what you want to set password
}
else 
{ echo "no such config or password" }
fi
shell脚本任务中的参数:

 "$(BuildConfiguration)" "$(KeyStorePasswordDev)" "$(KeyStorePasswordTest)" "$(KeyStorePasswordProd)"
注意:
由于
$(BuildConfiguration)
变量通常定义为
debug
release
,因此可以改用不同的变量名。

Nice。非常感谢。将进行尝试。您现在可以通过shell脚本任务成功设置密码吗?
 "$(BuildConfiguration)" "$(KeyStorePasswordDev)" "$(KeyStorePasswordTest)" "$(KeyStorePasswordProd)"