我一直在研究TFS2010与MSDeploy的新构建和部署功能.到目前为止一切进展顺利(虽然很难找到有关特定场景的信息).
我可以修改构建定义以指定要部署的2个或更多服务器吗?我需要做的是部署到多个服务器(因为我在我的测试环境中有两个使用NLB).
我现在拥有的是构建定义,构建,运行我的测试,然后部署到我的一个测试服务器(其上运行了MsDeployAgentService).它工作正常,每个Web项目都按其项目文件中的配置进行部署.我使用的MSBuild参数是:
* /p:DeployOnBuild=True
* /p:DeployTarget=MsDeployPublish
* /p:MSDeployServiceURL=http://oawww.testserver1.com.au/MsDeployAgentService
* /p:CreatePackageOnPublish=True
* /p:MsDeployPublishMethod=RemoteAgent
* /p:AllowUntrustedCertificated=True
* /p:UserName=myusername
* /p:Password=mypassword
Run Code Online (Sandbox Code Playgroud)
注意:我不使用/ p:DeployIISAppPath ="xyz",因为它没有部署我的所有项目并覆盖我的项目配置.
我可以添加另一个构建参数来让它调用多个MSDeployServiceURL吗?就像第二个/ p:MSDeployServiceURL参数,它指定另一个服务器?
或者我是否需要寻找其他解决方案,例如编辑WF?
我在2个月前看到了一个几乎完全相同的问题:TFS 2010 - 构建后部署到多个服务器,所以看起来我不是唯一一个试图解决这个问题的人.
我还发布了讨论MSDeploy的IIS.NET论坛:http://forums.iis.net/t/1170741.aspx .它有很多观点,但同样没有答案.
我在Bamboo中创建了一个指向MSDeploy可执行文件的构建器.我想在部署新网站之前备份当前的网站.
这是我运行的命令行:"C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"-verb:sync -source:contentPath ="Default Web Site\MyService",computerName ="myserver" -dest:package ="MyService_backup_before_43.zip"-enableLink:AppPoolExtension
所以我设置了一个新的MSDeploy构建器指向"C:\ Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"然后我选择我的构建器为MSDeploy.
参数是:-verb:sync -source:contentPath ="Default Web Site\MyService",computerName ="myserver"-dest:package ="MyService_backup_before_43.zip"-enableLink:AppPoolExtension
但是,MSDeploy一直在抱怨:无法识别的参数'" - source:contentPath ="Default'.所有参数必须以" - "开头.
关于参数线的竹子明显地试图变得聪明.但是我需要它来保持双引号(")它们在哪里.
我已经尝试了我能想到的单引号和双引号的每一种组合,即在所有参数之前,只在具有空格的那些之前,或者仅在具有引号的那些之前.
有人知道怎么让这个工作吗?
我最近将系统升级到Windows 7 Enterprise.我已经为在VS2010中使用.Net framework 3.5构建的控制台应用程序创建了一个安装包.但是当我尝试在XP机器上安装msi时,它给了我这个警告,需要.Net Framework 4.
我尝试解决错误的步骤:
我在上面的所有步骤都是徒劳的,因为我在XP机器上安装msi时仍然会收到警告.
有没有人有更好的想法来解决这个问题?
对于我当前的项目,我宁愿在发布时将我的数据库更新为正确的版本,而不是首先通过App_Start运行.
似乎通过与Entity Framework(5.0 rc2)一起提供的命令行工具'migrate.exe'支持手动升级.但我找不到任何有关其他人如何将此工具与msdeploy结合使用以在发布而不是首次运行时升级数据库的任何信息.
我找到了以下页面,其中介绍了如何使用migrate.exe工具:http: //blog.overridethis.com/blog/post/2012/03/13/Automating-EF-43x═-Migrations-in-your -Build.aspx
但这迫使我以某种方式'知道'连接字符串信息.
我的最佳解决方案是:
我搜索的似乎是'实体框架MSDeploy提供者'(参见:http://blogs.msdn.com/b/adonet/archive/2012/01/12/ef-4-3-beta-1- release.aspx)但似乎他们不久前放弃了这个选项
我正在尝试为网站编写一个构建系统,以便我可以进行一次单击构建.我从源代码存储库中获取代码的干净副本,然后使用msbuild运行AspNetCompiler任务来执行网站的所有预编译.
令我困惑的是我需要指定VirtualPath或MetabasePath.我没有元数据库路径 - 我想将其编译成本地目录,然后可以将其部署到所选择的任何服务器(即dev服务器,然后是服务器,然后是服务器).
VirtualPath很棘手,因为我希望将相同的代码部署到多个位置 - 代码使用一些上下文和配置细节来计算其SiteID以显示不同的信息 - 因此指定单个虚拟路径似乎并不明智.
还有其他各种类似的问题(例如,AspNetCompiler中的VirtualPath MSBuild任务 - 它必须等于最终部署的虚拟路径吗?)但我发现的唯一答案似乎更轶事 - 即他们jsut说它似乎对他们的经历没有任何影响.
但是,我无法相信它确实没有任何区别.必须有一些使用它的情况,否则就不会存在而且不需要.
那么有谁知道(并且最好有参考)这是做什么的?将组成的虚拟路径传递给任务可能会导致什么问题?
要求:我需要在IIS下部署到特定站点(例如dev.sitename.org)的zip包.
早些时候,我们在默认网站(IIS下)有网站,我们使用下面的命令来部署它.
>>msdeploy -verb:sync -source:package="D:\package.zip" -dest:auto
我为-dest尝试了不同的提供者,但没有任何效果.
有没有人对此有所了解.如果有的话请分享.
我想从运行团队城市的构建服务器部署Windows服务到最少的服务器配置到Windows Server 2012.
这样做的最佳方法之一是什么?
msbuild teamcity windows-services msdeploy windows-server-2012
我无法使用MS Build参数运行Team Foundation 2013构建以进行部署,并且出现错误:
C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4255):Web部署任务失败.('Microsoft.Web.Deployment.DeploymentBaseOptions'不包含'UserAgent'的定义)
VS 2013正在开发中.
奇怪的是,如果我将MSBuild文件夹*..\v11.0\Web*复制 到*v12.0\Web* 构建工作并进行部署.
我已经检查了v12.0\Web\Microsoft.Web.Publishing.targets文件,并且在v11.0\Web\Microsoft.Web.Publishing.targets中有一个UserAgent条目没有条目
我可以在我的计算机上使用VS Publish正常发布,但在构建服务器上它失败有没有人设法使用MSBuild VS 2013目标成功构建和部署?
我正在尝试使用msbuild通过命令行创建Web部署包.我一直在搜索,发现以下命令
msbuild myproject.csproj /t:package
Run Code Online (Sandbox Code Playgroud)
虽然它对我有用,但它只给了我视觉工作室在我们通过Packge/Publish Web选项卡创建Web部署包时返回的内容,其中"从运行此应用程序只需要文件"选项从下拉菜单中选择.但我希望我的Web部署包看起来与我从下拉菜单中选择"此项目文件夹中的所有文件"选项时所获得的完全相同.我已经浏览了这样的链接http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx.
但我想知道我是否真的需要自定义我的.csproj文件(在该帖子中描述它的方式),因为我想要的只是一个命令行(显然比我上面提到的更复杂)对于msbuild可以模仿"此项目文件夹中的所有文件"选项,用我项目的原始bin文件夹中的所有.dll 填充"web部署包的bin文件夹",并生成一个更全面的包.
在web.config我有:
<applicationSettings>
<App.Properties.Settings>
<setting name="ProfitConnectorToken" serializeAs="String" xdt:Transform="Replace" xdt:Locator="Match(name)">
<value>__ProfitConnectorToken__</value>
</setting>
</App.Properties.Settings>
Run Code Online (Sandbox Code Playgroud)
在我的parameters.xml中:
<parameter name="ProfitConnectorToken" description="Description for ProfitConnectorToken" defaultvalue="__PROFITCONNECTORTOKEN__" tags="">
<parameterentry kind="XmlFile" scope="\\web.config$" match="/configuration/applicationSettings/App.Properties.Settings/setting[@name='ProfitConnectorToken']/value/text()" />
Run Code Online (Sandbox Code Playgroud)
在我的SetParameters.xml中:
<setParameter name="ProfitConnectorToken" value="<token><version>1</version><data>XXXXXXXXXXXXXXXXXXXXXXXXX</data></token>" />
Run Code Online (Sandbox Code Playgroud)
但是,部署Web应用程序时未设置此值.当我将SetParameters.xml更改为:
<setParameter name="ProfitConnectorToken" value="TEST" />
Run Code Online (Sandbox Code Playgroud)
它确实有效,所以我的XPath是正确的.为什么未设置编码的xml值?
msdeploy ×10
msbuild ×4
.net ×2
asp.net ×2
deployment ×2
asp.net-mvc ×1
bamboo ×1
c# ×1
iis ×1
teamcity ×1
tfs2010 ×1
tfsbuild ×1
web-config ×1
webdeploy ×1