在用户使用IIS导入部署包并完成安装后,有没有办法触发自定义脚本(或打开Windows应用程序)?
有帮助吗?
我有一个远程Web服务器,我有完全的管理员访问权限,我想部署一个网站.
当我使用Visual Studio的发布工具,以及其他似乎不太方便的东西(FTP等)时,我可以选择使用Windows管理服务或远程代理服务.所有文件都说是这样的:
要通过Remote Agent Service远程发布,请使用 http:// RemoteComputerName.此选项通常用于在网络内部署Web应用程序(在Intranet方案中).您必须具有适当的权限才能在目标服务器上执行部署.
要使用Windows Management Service发布到主机站点,请使用主机提供商指定的值.您通常只能使用服务器名称(HostedRemoteServer)或包含服务器名称,端口号和Web Deploy处理程序名称(https:// HostedRemoteServer:8172/MsDeploy.axd)的完整URL .该托管服务提供商可以告诉你的服务器的名称和端口号(如适用).
但这并不足以让我决定.是啊,我不是发布在网络上,但我有过,我部署到机器完全访问权限.与此同时,MsDeploy是Scott Hanselman 在他的演讲中描述的一件大事,我被认为是部署的绝佳方式.
那我该怎么办?是否有任何模糊的安全考虑或任何事情?
我有一个部署包需要针对大约3种不同的环境运行.
我想指定一个sql脚本来运行(源)环境数据库(destiniation).
我不想在部署脚本中指定连接字符串,因为它包含sql登录信息.
我希望能够从目标读取连接字符串的设置.
在解压缩服务器上的部署包时,是否可以将此参数标记为要指定的参数?如果是这样,我如何使用dest中的参数:sql ="connection string"?
任何建议都会很棒.
是否可以使用MSDeploy修改(或仅替换)现有站点的web.config?
我正在尝试使用Web Deploy发布.NET Web服务.目前,它包含了包中的XML文档文件.我在Visual Studio的项目属性的Build选项卡中取消选中"XML文档文件".这会阻止发布XML文件,但该项目引用了许多具有XML文档的自定义库.
显然,我们不想关闭自定义库的文档.也没有理由部署这些XML文件.
从msdeploy/msbuild命令行或项目属性中,如何防止XML文档文件包含在包和后续Web部署中?
更新
我已经尝试添加DEL /Q "$(TargetDir)*.xml"到构建前和构建后的事件但没有成功.XML文件仍添加到包中.
我无法让它发挥作用
call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy
Run Code Online (Sandbox Code Playgroud)
它给了我:
警告:'backup.bat'不被识别为内部或外部命令,可操作程序或批处理文件.
警告:进程'C:\ Windows\system32\cmd.exe'(命令行'')退出,代码为'0x1'.总变化:1(添加0,删除0,更新1,更改0参数,复制0字节)
如果我删除param1并在.bat中对其进行硬编码,它就可以正常工作,所以如果你想知道的话,bat文件没有问题.
我试图指定.bat的完整路径,它仍然不起作用:
Run Code Online (Sandbox Code Playgroud)call "%MSDeployPath%msdeploy" -verb:sync -source:runCommand='c:\backup.bat param1' -dest:auto,computername=10.xx.xx.xx,username=xxx,password=yyy
在这种情况下,它看起来像将路径解释为远程路径,它期望backup.bat在服务器上.我在服务器上移动了backup.bat后确认了这一点
为什么它必须如此坚硬???
我将几个跳过参数传递给msdeploy,以便不同步(删除和更新)某些目录和文件
-skip:skipAction='Update',objectName='filePath',absolutePath='.*\\documents\\.*'
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用,某些目录和文件被删除。我很确定给绝对路径的正则表达式没有问题
任何人都可以清理一下跳过规则的匹配方式吗?根据正则表达式和objectName,它显然不起作用。
我无法弄清楚如何让我的web.config部署转换适用于重写规则.我尝试过以下内容而忽略了它.
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<rewrite xdt:Transform="Replace">
<rules>
<rule name="Force HTTPS On Login/Register" stopProcessing="true">
<match url="Account/Login(.*)|Register(.*)" ignoreCase="true" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
<rule name="Force HTTPS Off" stopProcessing="true">
<match url="((Account/Login(.*))|(Register(.*)))" negate="true" ignoreCase="true" />
<conditions>
<add input="{HTTPS}" pattern="^ON$" ignoreCase="true" />
</conditions>
<action type="Redirect" url="http://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud) 在学习持续集成的同时,我遇到了这两个术语.我感到困惑.可能是一个非常愚蠢的问题.但我想知道在持续集成过程中MsBuild.exe和MsDeploy.exe的作用是什么.我可以使用一个而不是其他.或者他们有自己的目的.
我也尝试使用这两个选项,但在使用它们时,我在"www.serverurl/MsDeployAgentService"的服务器请求超时时遇到以下错误
我应该使用www.serverurl.com/msbuild.axd还是www.serverurl.com/MsDeployAgentService.
据我所知,他们都使用配置转换构建和发布应用程序.请帮帮我.
使用Visual Studio和MSBuild我希望能够排除所有.js文件并包含.min.js我的部署中的所有文件.
我知道这可以使用visual studio中的文件属性来实现,但这不是一个选项,因为文件太多了.
我的PublishProfileVisual Studio项目中有以下内容.一切都很好,除了<ItemGroup>
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Delpoy-Static</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<publishUrl>\\***\wwwroot\***.com\static</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
<!--This does not work, but gives the idea of what I want …Run Code Online (Sandbox Code Playgroud)