你的问题的一些答案。
- 我更喜欢使用 NTLM 身份验证,而不将用户名和密码(尤其是)存储在发布配置文件中。如何才能做到这一点?如果我将用户名和密码留空,系统会提示我输入。有没有像手动修改 .pubxml 文件的方法?
您的身份验证通常由托管 Web Deploy 的方式驱动。默认情况下,如果您使用 Web 管理服务,那么您将使用 IIS 用户进行身份验证。使用 IIS 用户,您可以控制哪些用户有权访问特定站点/应用程序。不过,您也可以将 WMSVC 配置为使用 Windows 身份验证。如果您在这些场景中使用 VS 时遇到问题,请告诉我。如果您使用远程代理服务来托管 Web 部署,那么在这种情况下,您将使用 Windows 身份验证。
- 为什么用户名/密码存储在
PublishProfileName.pubxml
我已在源代码管理中签入的文件中,而不是
PublishProfileName.pubxml.user
每个用户本地的?我至少可以保存用户名,但显然不希望签入。
我们有另一种机制供您确定哪些信息是私有/共享的。除密码外,所有发布信息都是共享的(并且默认签入)。为了简化设计,您可以拥有一个共享的发布配置文件,或者一个根本不共享的发布配置文件。在您的个人资料中,不存在共享某些字段而其他字段不共享的配置文件。密码在此处是特殊情况,并在 .pubxml.user 文件中基于每个用户/每台机器进行加密。
如果您想要一个私人发布配置文件,那么您可以简单地不签入与发布配置文件对应的 .pubxml 文件。这些存储在 Properties\PublishProfiles(或 My Project\PublishProfiles for VB)中,只是将它们从项目中排除,而不是将文件签入。发布对话框在磁盘上查找配置文件,而不仅仅是在该项目。一切都应该继续工作。
我们不支持在 .pubxml.user 文件中选择性地存储值的概念。发布对话框只会在该文件中存储一定数量的值。代替
- 配置本身不是其中的一部分,
PublishProfileName.pubxml
而是存储
PublishProfileName.pubxml.user
在LastUsedBuildConfiguration
.
- 平台与最后一点相同。
这是一个错误,它应该存储在 .pubxml 文件中,而不是 .pubxml.user 文件中。我们已经修复了这个问题,但还没有机会发布更新。
无法在发布配置文件中设置配置属性。Configuration 属性是构建过程的核心部分。更具体地说,我们之所以没有调用此属性 Configuration 是因为 .pubxml 文件在构建和发布期间被导入到 .csproj/.vbproj 的定义中。由于其他属性是基于配置定义的,因此一旦设置该值,您将无法更改该值。我刚刚在http://sedodream.com/2012/10/27/MSBuildHowToSetTheConfigurationProperty.aspx上写了太多关于这个主题的详细信息。此限制是 MSBuild 的事情,而不是发布限制。对于命令行,您应该通过以下方式指定配置: msbuild.exe myproj.csproj /p:...(other properties)... /p:Configuration=
- 我也缺少对多服务器部署的支持。除了发布配置文件之外,我目前还被迫使用批处理文件。
我们对此没有直接支持,但如果您扩展您的需求,我可能会提供帮助。仅供参考,我有一个您可能感兴趣的扩展程序。我已将 5 分钟的视频发布到http://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspx。