MSBuild和Jenkins:凭证放在哪里?

4

我正在尝试使用Jenkins、Git和MSBuild设置一个小型持续集成服务器。

我已经阅读了很多不同的关于这个主题的教程,但是我仍然有很多问题!

我创建了一个Jenkins任务,它将从Git拉取更改,并使用MSBuild部署到另一台服务器。

构建操作调用MSBuild.exe并使用以下属性:

/p:VisualStudioVersion=12.0
/p:Configuration=Release
/p:Platform="Any CPU"
/p:DeployOnBuild=True
/p:DeployTarget=Test
/p:MsDeployServiceUrl=https://myserver:8172/MsDeploy.axd
/p:AllowUntrustedCertificate=True
/p:UserName=myusername
/p:Password=mypassword

它正在愉快地工作,但我想了解更多信息。例如:
  1. 我正在将凭据指定为属性。有没有更好的方法?请注意部署服务器是外部的(不在局域网内)。
  2. 我需要使用/P:CreatePackageOnPublish=True属性吗?如果是,为什么?
到目前为止,我已经尝试遵循以下教程:

你使用 /p 开关时,你所使用的凭据是用于什么目的? - granadaCoder
目标服务器上的Web Deploy身份验证(IIS或机器用户)。 - StockBreak
1个回答

4
  1. 我建议不直接构建 .sln 或 .csproj 文件。相反,编写一个 mini-msbuild-definition 文件(通常是 .proj),在其中放置一些参数。(并且保持您的命令行调用更简单)

  2. 那么你的问题稍微变一下,“如何存储凭据”。我通常将它们存储在一个独立的文件中。

这个网址展示了如何保护“敏感信息”文件。

在 MSBuild 文件中加密密码

我喜欢将我的信息存储在一个小的 xml 文件中,就像这里看到的:

MSBuild.ExtensionPack.Communication.Ftp 的 FTP 凭据

这是一个“基本 msbuild (.proj)”文件的示例。(下面的链接)

这是为 CC.NET 设计的。但是哲学是相同的。尽量少使用 hudson/jenkins/cc.net/其他专有调用。使用 .proj 文件完成 99% 的工作。将 CI(jenkins/cc.net/其他)视为“超级高级的 msbuild 执行器”

如何为 CruiseControl.net 设置从构建项目存储库的构建步骤?


谢谢granadaCoder,我会探索在另一个文件中加密凭据的方法。那么/p:CreatePackageOnPublish参数呢? - StockBreak
这将编码到.proj文件中。 <MSBuild Projects="$(WorkingCheckout)\MySolution.sln" Targets="Build" Properties="Configuration=$(Configuration)"> <Output TaskParameter="TargetOutputs" ItemName="TargetOutputsItemName"/> </MSBuild> - granadaCoder
抱歉,我的意思是那个参数是用来做什么的?它实际上是做什么的? - StockBreak
对不起,我不知道那个。 - granadaCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接