在Visual Studio 2012中,使用发布配置文件和Web部署可以简化部署过程。但是它仍然缺少一些东西,或者我可能还不知道如何使用它。
PublishProfileName.pubxml
我已在源代码管理中检查过,而不是PublishProfileName.pubxml.user
中每个用户本地的用户名/密码?我至少可以保存用户名,但显然不希望将其签入。PublishProfileName.pubxml
,但存储在PublishProfileName.pubxml.user
LastUsedBuildConfiguration
。修改
适用于发布的命令行是
MSBuild.Exe MyProject.sln /p:Configuration=QA /p:DeployOnBuild=true;PublishProfile=PublishToQA;AllowUntrustedCertificate=true /p:authType=NTLM /p:UserName=
如果配置成为发布配置文件本身的一部分,我想省略/p:Configuration=QA
。
答案 0 :(得分: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.user
LastUsedBuildConfiguration
。{/ li>- 与最后一点相同的平台。
这是一个错误,应该存储在.pubxml文件中,而不是.pubxml.user文件中。我们已经解决了这个问题,但还没有机会发布更新。
无法在发布配置文件中设置“配置”属性。 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。
答案 1 :(得分:0)
您可以自由(并鼓励)手动编辑pubxml
文件,因此请随时删除密码。
要切换到NTLM,请在第一个AuthType
中将NTLM
更改为PropertyGroup
。
Platform
和Configuration
仍然是构建配置,user
文件只存储它们,因此Visual Studio知道您部署的最后一个配置是什么。
通过多服务器,您的意思是网络服务器场吗?如果是这样,您可以尝试查看Web Farm Framework,它基本上执行从主服务器到其他服务器的MSDeploy同步。
或者,您可以切换到命令行并使用postSync
上传并执行远程服务器上的批处理文件,从那里触发其他部署。