如何配置发布配置文件以使用NTLM身份验证

ami*_*t_g 8 msbuild msdeploy visual-studio-2012

在Visual Studio 2012中,使用发布配置文件和Web部署可以简化部署.然而,它仍然缺少一些东西,或者可能是我还不知道如何使用它.

  • 我更喜欢使用NTLM身份验证,而不在发布配置文件中存储用户名和密码(尤其是).如何才能做到这一点?如果我将用户名和密码留空,我会收到提示.有没有像手动修改.pubxml文件的方法?
  • 为什么用户名/密码存储在PublishProfileName.pubxml我已经检查过源控件中而不是PublishProfileName.pubxml.user每个用户都是本地的?我至少可以保存用户名,但显然不希望将其签入.
  • 配置本身不是其中的一部分,PublishProfileName.pubxml而是存储在PublishProfileName.pubxml.useras中LastUsedBuildConfiguration.
  • 与最后一点相同的平台.
  • 我也缺少对多服务器部署的支持.除了发布配置文件之外,我目前不得不使用批处理文件.

编辑

适用于发布的命令行是

MSBuild.Exe MyProject.sln /p:Configuration=QA /p:DeployOnBuild=true;PublishProfile=PublishToQA;AllowUntrustedCertificate=true /p:authType=NTLM /p:UserName=
Run Code Online (Sandbox Code Playgroud)

在此我想省略/p:Configuration=QAif配置是否成为发布配置文件本身的一部分.

Say*_*imi 5

一些问题的答案.

  • 我更喜欢使用NTLM身份验证,而不在发布配置文件中存储用户名和密码(尤其是).如何才能做到这一点?如果我将用户名和密码留空,我会收到提示.有没有像手动修改.pubxml文件的方法?

您的身份验证通常由Web Deploy的托管方式驱动.默认情况下,如果您使用的是Web管理服务,那么您将使用IIS用户进行身份验证.使用IIS用户,您可以控制哪些用户具有特定站点/应用程序的权限.您也可以将WMSVC配置为使用Windows身份验证.如果您在使用VS时遇到问题请告诉我.如果您使用Remote Agent服务来托管Web Deploy,那么在这种情况下您将使用Windows身份验证.

  • 为什么用户名/密码存储在PublishProfileName.pubxml我已经检查过源控件中而不是 PublishProfileName.pubxml.user每个用户都是本地的?我至少可以保存用户名,但显然不希望将其签入.

我们有另一种机制供您确定哪些信息是私有/共享的.除密码外,所有发布信息都是共享的(默认情况下已签入).为了简化设计,您可以拥有共享的发布配置文件,也可以根本不共享发布配置文件.您没有介于某个字段共享的配置文件和其他字段之间没有的字段.此处的密码是特殊的,并在.pubxml.user文件中基于每个用户/每台计算机进行加密.

如果您想拥有一个私有发布配置文件,那么您就不能签入与发布配置文件相对应的.pubxml文件.它们存储在Properties\PublishProfiles(或My Project\PublishProfiles for VB)中,只是将它们从项目中排除,不要检查文件.发布对话框在磁盘上查找配置文件,而不仅仅是在磁盘上的配置文件.该项目.一切都应该继续发挥作用.

我们不支持在.pubxml.user文件中有选择地存储值的概念.发布对话框仅在该文件中存储一定数量的值.代替

  • 配置本身不是其中的一部分,PublishProfileName.pubxml而是存储在 PublishProfileName.pubxml.useras中LastUsedBuildConfiguration.
  • 与最后一点相同的平台.

这是一个错误,应该存储在.pubxml文件中,而不是.pubxml.user文件中.我们已经解决了这个问题,但还没有机会发布更新.

无法在发布配置文件中设置Configuration属性.Configuration属性是构建过程的核心部分.更具体地说,我们之所以没有调用此属性Configuration,是因为.pubxml文件在构建和发布期间被导入到.csproj/.vbproj的定义中.由于其他属性是基于Configuration定义的,因此一旦设置了该值就无法更改.我在http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx上写了关于这个主题的太多细节.此限制是MSBuild的事情,而不是发布限制.对于命令行,您应该按以下方式指定Configuration:msbuild.exe myproj.csproj /p:...(其他属性).../p:Configuration =

  • 我也缺少对多服务器部署的支持.除了发布配置文件之外,我目前不得不使用批处理文件.

我们没有这方面的直接支持,但如果您扩展您的需求,我可能会提供帮助.仅供参考我有一个您可能感兴趣的扩展程序.我已经发布了一个5分钟的视频到http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx.