如何在 app.config xml 文件中添加 Gitlab 自定义变量
Posted
技术标签:
【中文标题】如何在 app.config xml 文件中添加 Gitlab 自定义变量【英文标题】:How to add Gitlab custom variable in app.config xml file 【发布时间】:2020-06-02 15:21:28 【问题描述】:我正在使用 Gitlab CI 开发 C# 项目,并希望在 app.config 文件中隐藏秘密。
我在 Gitlab 和 app.config 中添加了一个变量,如下所示:
<add key="User" value="username" />
<add key="Password" value=$Password />
然后,当我尝试使用 msbuild 在 gitlab CI 中构建应用程序时,我收到一个错误:
$ msbuild "$PROJECTNAME.sln" /consoleloggerparameters:ErrorsOnly /t:Test_project /maxcpucount /nologo /property:Configuration=Release /verbosity:quiet app.config(5,33):错误 MSB3249:应用程序配置文件“app.config”无效。 '$' 是一个意外的标记。预期的令牌是 '"' 或 '''。第 7 行,位置 33。[/builds/project/Test_project/Test_project.Service/Test_project.Service.csproj]
请指教,如何在 app.config xml 文件中添加 Gitlab 环境变量。
【问题讨论】:
属性值周围应该有引号,这就是错误消息告诉您的内容 - expected token is " or '. @CharlesMager,如果在属性值周围添加引号,它将只是文本,而不是变量的值:<add key="Password" value="$Password" />
cat ./Test_project.Service/bin/Release/Test_project.Service.exe .config ... <add key="Password" value="$Password" />
... echo $Password password
啊,好吧 - 我有点错过了这里的重点!我不确定我是否足够了解 Gitlab 如何做到这一点来发表评论,尽管最终结果仍然需要引号。鉴于它抱怨$
,它似乎根本没有被替换。
您尝试过使用value="%Password%"
吗?
@NicolasPepinster,是的,结果是一个文本,就像之前的评论:<add key="Password" value="%Password%" />
【参考方案1】:
对于 .xml 文件,它应该使用 $env.MY_VAR_DEFINED_IN_GITLAB
其中MY_VAR_DEFINED_IN_GITLAB,如指定的,是在Gitlab项目(或组)->设置->CI/CD->变量中定义的变量
因此在你的情况下应该可以工作:
<add key="User" value=$env.GITLAB_VAR_USERNAME/>
<add key="Password" value=$env.GITLAB_VAR_PASSWORD/>
【讨论】:
以上是关于如何在 app.config xml 文件中添加 Gitlab 自定义变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 app.config 中提供 xml 文件源并从 winform 中写入/读取这些 xml 文件?
在Web.config或App.config中的添加自定义配置
在Web.config或App.config中的添加自定义配置