MSBuild和Jenkins:在哪里放置凭据?

时间:2013-12-13 19:49:51

标签: git visual-studio msbuild jenkins continuous-integration

我正在尝试使用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. 我将凭据指定为属性。还有更好的方法吗?请注意,部署服务器是外部的(不在LAN中)
  2. 我是否需要使用/P:CreatePackageOnPublish=True属性?如果是,为什么?
  3. 到目前为止,我已尝试按照以下教程进行操作:

    非常感谢!

1 个答案:

答案 0 :(得分:4)

  1. 我建议不要直接构建.sln或.csproj文件。但是编写一个迷你msbuild定义文件(通常是.proj)并在其中放入一些参数。 (并保持命令行调用更简单)

  2. 然后您的问题稍微更改为"如何存储凭据"。我通常将它们存储在一个独立的文件中。

  3. 此网址显示了如何保护敏感信息"文件。

    Encrypting password in a MSBuild file

    我喜欢将我的信息存储在一个小的xml文件中,如下所示:

    FTP Credentials for MSBuild.ExtensionPack.Communication.Ftp

    以下是"基本msbuild(.proj)"的示例。文件。 (链接下方)

    这是针对CC.NET的。但哲学是一样的。 做很少的hudson / jenkins / cc.net /其他propietrary电话。使用.proj文件可以获得99%的需要。把你的CI(jenkins / cc.net / other)想象成一个超级花哨的msbuild执行者"

    How to setup building steps for CruiseControl.net from repository of the building project?