Continuous integration VS2012发布配置文件-加密密码

Continuous integration VS2012发布配置文件-加密密码,continuous-integration,visual-studio-2012,publish-profiles,Continuous Integration,Visual Studio 2012,Publish Profiles,我喜欢使用新的VS 2012发布配置文件,但在构建服务器上使用它们时,我不确定如何存储密码 当我勾选“保存密码”框时,它会创建一个.pubxml.user文件,并在XML节点中加密密码 当我在构建服务器上运行部署时,密码文件似乎总是被忽略 我可以把密码保存在一个 <PropertyGroup> <Password>NotMyRealPassword> </PropertyGroup NotMyRealPassword> 当我试图为你的问题写一个答案

我喜欢使用新的VS 2012发布配置文件,但在构建服务器上使用它们时,我不确定如何存储密码

当我勾选“保存密码”框时,它会创建一个.pubxml.user文件,并在XML节点中加密密码

当我在构建服务器上运行部署时,密码文件似乎总是被忽略

我可以把密码保存在一个

<PropertyGroup>
    <Password>NotMyRealPassword>
</PropertyGroup

NotMyRealPassword>

当我试图为你的问题写一个答案时,我意识到我不适合回答这个问题,但我确实想对.pubxml.user文件发表一些评论


在Visual Studio中保存web发布配置文件时,我们会加密密码并将加密值存储在给定发布配置文件的.pubxml.user文件中。我们基于每个用户/每台机器对该值进行加密。因此,如果将同一文件带到不同的计算机(或者如果不同的用户登录到同一台计算机),它将无法解密到正确的值。因此,如果您可以解密VS在构建服务器上存储的值,则不值得研究。

Ahhh真是太遗憾了。。。我相信在这种情况下,CI是放置此信息的最佳场所,因为它能够测试您的CI服务器正在做什么,这对于避免任何CI/CD摩擦非常关键。P.s.谢谢你的出色表现和回答!那么,在读了你的另一篇帖子后,我应该在命令行上传递它?这让我觉得有点“代码臭味”。这里的聚会迟到了,@Doug,但您可以将msdeploy密码存储在Windows凭据管理器中,并使用msdeploy的
getCredential
参数(尽管msbuild任务不支持),这很有趣。如果您遵循的是“build server holds the keys”(生成服务器持有密钥)模型,这是一个非常好的攻击-尽管发布配置文件无法包含这一点。尝试使用msbuild自动发布,希望使用Visual Studio保存的凭据(在同一台计算机和用户上),但到目前为止这似乎是不可能的@Sayed我说这不受支持对吗?如果是,我在哪里提交错误报告(或者微软真的建议在命令行上使用清晰的字符串密码?)