问题标签 [msdeploy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio - MSDeploy 覆盖 IIS 设置
我终于有了 TeamCity 设置来构建源代码控制更改,以及一个单独的 MSBuild 任务设置,使用“包”目标和生成的“deploy.cmd”脚本打包并部署到登台服务器上的 IIS。在构建事件、文件包含/排除等方面,一切都很完美……
但是,我遇到了如何部署包的问题。每当我将包部署到服务器时,IIS 设置都会被吹走。例如,我可以设置缓存过期标头或打开静态压缩,在我部署我的包后,它们将恢复为服务器的默认值。
有谁知道我该如何解决这个问题?是否有我可以传递的参数或我可以忽略的规则?
msdeploy - MSDeploy 中的多个跳过?
我知道-skip 参数,但是有没有办法告诉 MSDeploy 跳过多个目录?多次调用该参数似乎不起作用。
msbuild - 使用 TeamCity 构建和部署特定的修订号
我刚刚开始掌握 TeamCity 和 MSDeploy,并且部署到由 SVN 提交触发的开发环境运行良好。我的问题是发布到测试环境;我想根据需要并基于特定的修订号来执行此操作。基于用户定义的修订配置 TeamCity 构建的最佳方式是什么?
msbuild - MSBuild 能否在一个命令中通过 MSDeploy 打包和部署到 IIS 6?
这是我想要做的:
- 构建一个以“包”为目标的现有 .csproj
- 使用 MSDeploy 将包发布到 IIS 6 服务器
这适用于我尝试一步配置的 TeamCity 构建和发布。我可以创建一个自定义构建文件,但我试图在不向应用程序添加任何额外配置的情况下解决这个问题。
有很多关于 MSBuild 参数的示例可以通过 WMSVC 进行此发布 -这是一个很棒的示例- 但这不会与 IIS 6 一起玩。当依赖于 MsDepSvc 时,是否可以使用等效的参数?这甚至可能吗,还是我留下了自定义构建脚本或包构建,然后是发布构建?
visual-studio-2010 - 为什么有些 Web.config 转换被标记为 SetParameters.xml 而其他不是?
我最近一直在 VS2010 中使用配置转换,但我很困惑为什么有些转换直接应用于包中的 Web.config,而另一些转换存储在 SetParameters.xml 中的令牌上,然后在发布时应用。
例如,使用具有以下连接字符串和应用设置的 Web.config:
然后这是当前构建配置的相应配置转换:
这些都是“替换”转换,除了一个是与“名称”匹配的连接字符串,另一个是与“键”匹配的应用程序设置,在我看来它们是相同的。
现在查看结果包中的 SetParameters.xml 文件,只有连接字符串有一个 setParameter 节点。在 PackagTmp 文件夹的 Web.config 中,应用设置转换已应用,而连接字符串具有“$(ReplacableToken_AutoDeployDb-Web.config Connection String_0)”值,该值仅在部署包时应用。
为什么是这样?它是否特定于连接字符串(或相反,特定于应用程序设置)?我很欣赏这种方法的基本原理,我只是不清楚为什么它适用于某些设置而不是其他设置。
任何人都可以对此有所了解吗?
powershell - 如何使用 MSDeploy API 定义 setParamFile
如何使用 MSDeploy API 从 MSDeploy.exe 定义 -setParamFile 参数?
我正在尝试在 powerShell 中编写与以下内容等效的内容:
这是我到目前为止所拥有的:
visual-studio - 通过 [proj].deploy.cmd 发布时,Web Deploy 返回 401 未授权
我在使用 Web Deploy 时遇到了一点问题,我似乎无法解决。每次我尝试通过包中的 [proj].deploy.cmd 命令发布到 WMSvc 时,我都会收到“远程服务器返回错误:(401)未授权”。命令如下所示(项目名为“Web”,服务器名为“AutoDeploy”):
我可以通过 Visual Studio 很好地发布到https://AutoDeploy:8172/MsDeploy.axd,因此该服务肯定正在运行,并且我可以成功地以管理员身份对其进行身份验证。在以管理员身份登录时(它只是一个本地 Win 2k8 VPC)在计算机上本地运行此程序不起作用,并且使用管理员帐户添加 /U 和 /P 参数没有任何作用。
我已经启用了失败的请求跟踪并得到了这个输出,所以至少有一些东西可以参考,但不幸的是我无法确定根本原因是什么。我正在尝试使用与 Visual Studio 中相同的凭据连接到相同的服务,但显然有些不同。
只是出于兴趣,我可以发布到 Web 部署代理服务 (MsDepSvc),如下所示:
但我真的很想让 WMSvc 运行!有什么想法吗?
msbuild - 如何避免使用 MSDeploy 到使用 MSBuild 的文件系统的这种深层文件夹结构?
我正在为这个 MSBuild 问题而烦恼。
我们正在使用 TeamCity 构建一个包含两个 MVC 网站的解决方案。作为构建的一部分,我们将部署到构建服务器上的文件夹。IIS 指向此文件夹,以便为我们提供对管理层可见的集成构建。
这是使用 MSDeploy 发布包的 MSBuild 文件中的代码 - 但不是作为 zip 文件。
这里的问题是我们得到了一个非常深的文件夹结构。这是一个例子......
C:\DEPLOY\Archive\Content\C_C\Users\Edmond\Documents\Visual Studio 2008\CreatioGreen\Creatio\Code\core\trunk\Website\Website\obj\Release\Package\PackageTmp[已发布文件]
我真的很想部署到可预测的文件夹中,例如...
C:\build\website[已发布文件] C:\build\mobilewebsite[已发布文件]
这就是背景。以下是具体问题。
我们在尝试使用 MSDeploy 发布到本地文件系统时是否犯了错误?我们基本上需要具有配置转换的 VS2010“发布”功能。我们不会尝试部署到远程 IIS 实例或任何东西。
除了指定发布文件夹之外,有没有办法做到这一点?
我一直在尝试使用 MSBuild Copy 任务将文件复制到更合理的文件夹中 - 但我无法弄清楚如何使用通配符来指定我们需要使用的文件夹 - 它需要类似于......
C:\FolderPackageEndsUpIn[ANYFOLDERS]\网站[ANYFOLDERS]\PackageTmp* *。
帮助!
msbuild - MSBuild 可以使用集成身份验证部署还是仅使用基本身份验证?
我正在将 Web 应用程序包从 MSBuild 命令行部署到 IIS6 上的 MSDepSvc,使用基本身份验证的以下命令可以正常工作:
但是,我真正想做的是删除用户名和密码参数,并以当前用户的身份回退到集成身份验证。此命令将进入构建服务器,我不希望在目标环境(MsDepSvc 所需)上具有管理员权限的帐户的纯文本凭据可见。我找不到任何有关如何执行此操作的文档,并且在我尝试发布时丢弃凭据返回 401 未经授权。
尤其令人沮丧的是,我可以愉快地在带有集成身份验证的包中运行部署命令(只是不包括凭据),但我似乎无法从 MSBuild 命令行运行它。我试图在不编辑构建文件的情况下将包和部署过程封装到一个命令中,这是目前唯一的方法。
有什么想法吗?
编辑 在与 Sayed 讨论并深入研究命令行输出后,在执行上面的 MSBuild 命令(没有用户名和密码参数)之后,正在调用以下 MSDeploy 命令:
您可以看到正在设置 UserName 属性,其值是当前登录用户的用户名。如果我把它拿出来直接运行上面的命令,部署就很好了。
那么在此基础上,为什么原来的 MSBuild 命令在调用 MSDeploy 的时候会插入一个 UserName 属性呢?这似乎是现在唯一的障碍。
visual-web-developer - 使用 Web 部署包为子文件夹设置 ACL
我正在尝试在 Visual Web Developer Express 2010 中构建一个部署包,它为已部署网站的子文件夹设置 ACL。我使用了以下信息http://leethams.wordpress.com/2010/06/12/modifying-directory-permissions-with-web-deployment/
这是我的测试:
创建一个新的空白 ASP.NET 应用程序(本例中为 WebApplication2)
在高级编译选项中,将 .NET Framework 目标版本更改为 3.5
创建一个新文件夹(本例中为 Config)并在文件夹中添加任何文件
使用此内容创建一个名为 WebApplication2.wpp.targets 的新文件
我从命令行执行,一切正常:
现在,要设置 Config 文件夹的权限,我更改以下行并重新构建部署包。
我收到以下错误:
在英文中它说:“错误:在使用带有物理路径的 'setAcl' 提供程序时,必须指定 'setAclUser' 的值”。请注意,第三个 setAcl 已更改为部署包所在的物理路径。
然后我尝试以这种方式修改它:
但错误仍然存在。如果我使用“/t”开关执行部署包,它不会抛出错误,尽管它仍然显示物理路径。我可以硬编码 IIS 路径并像这样更改行:
它工作正常。但是,我不想这样做,因为需要参数化安装路径。
将路径更改为反斜杠没有任何区别:
任何帮助,将不胜感激。谢谢