我在使用带有IIS 6的Web Deploy的appHostConfig提供程序时遇到问题.我没有在文档中看到任何内容,说我不能或者我需要安装额外的东西.
我知道我想在IIS的更高版本中做什么.如果我在IIS 7.5(Windows 7)上运行以下命令,它将创建Default Web Site我在IIS管理器中可以看到的副本.
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V2\msdeploy.exe"
-verb:sync
-source:apphostconfig="Default Web Site"
-dest:apphostconfig="Created from command line"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试在IIS 6(Windows 2003)上执行完全相同的操作时,我收到以下消息:
错误:无法创建"appHostConfig"类型的对象和"默认网站"路径.
错误:发出了一个需要IIS配置系统但系统不可用的命令.确保您使用的是包含配置系统的IIS版本.
我可以在IIS 6中执行此操作,还是需要以不同的方式执行某些操作?
我在使用MSBuild和MSDeploy设置不同的环境时遇到问题.
我在TeamCity上设置了2个配置
我的TestConfiguration工作正常,但StagingConfiguration不部署包.
<MSBuild Projects="MyProject\MyProject.csproj"
Properties="Configuration=Staging;
DeployOnBuild=true;
DeployTarget=Package;"/>
Run Code Online (Sandbox Code Playgroud)
我试过加两个
_PackageTempDir=\\server\c$\WebDirectory;
PackageLocation=\\server\c$\WebDirectory;
Run Code Online (Sandbox Code Playgroud)
但似乎都没有做任何事情,我错过了这一点吗?我真的没有找到任何文档,只是在这里和那里奇怪的博客文章.我是否需要在TeamCity服务器上安装某些东西才能使MSDeploy正常工作?
我理想的情况是:
我正在尝试将Web部署工具包与我们的MVC3项目一起使用,整体部署工作正常但我们的数据库连接字符串的密码包含百分比(%)字符,后跟两个数字.部署工具包似乎正在将其转换为Hex字符替换.有没有办法防止这个字符替换并仍然保持连接字符串在开发人员机器上可用?我尝试在Web.Debug.Config文件中添加替换,甚至添加%25而不仅仅是%来尝试让它替换%字符,它仍然替换完整的值.
例:
<connectionStrings>
<add name="MyDB" connectionString="server=Server1;uid=user1;pwd=abc123%72;database=Database1;"
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
被取代
<connectionStrings>
<add name="MyDB" connectionString="server=Server1;uid=user1;pwd=abc123r;database=Database1;"
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) 我有一个Web应用程序,我正在尝试部署并将web.config文件参数化.我可以通过运行来构建包
msbuild myproj.csproj /T:package
现在当它生成包时,我在目录中得到一个文件.
Archive.SetParameters.Xml
此文件中包含参数,如果我更改它们将最终在已部署的包中.我的问题是,如何定义更多参数,以便在构建项目时,它在文件中有我的额外参数.
我相信我可以使用MSDeploy -declareParam 但是我如何从MSBuild做到这一点?或.csproj文件.
我的最终目标是使用参数化的Web.config文件来部署到多个环境中.
我在IIS网站下面有一个子应用程序,我可以使用Visual Studio中的发布向导来部署它没问题.
但是,我正在从构建服务器自动部署,所以我更喜欢直接使用msdeploy.exe.
我可以部署主网站,但尝试部署子应用程序拒绝工作.
这工作(www.mymainwebsite.co.uk是IIS网站):
msdeploy.exe -source:package ='www.mymainwebsite.co.uk\obj\Test\Package\www.mymainwebsite.co.uk.zip' -dest:auto,computerName ='https:// testweb1:8172/MsDeploy .axd?site = www.mymainwebsite.co.uk',userName ='xxx',password ='xxx',authtype ='Basic',includeAcls ='False'-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension - disableLink:CertificateExtension -setParamFile:"www.mymainwebsite.co.uk\obj\Test\Package\www.mymainwebsite.co.uk.SetParameters.xml"-allowUntrustedInfo
这不是(SubApplication是应用程序路径):
msdeploy.exe -source:package ='SubApplication\obj\Test\Package\SubApplication.zip' -dest:auto,computerName ='https:// testweb1:8172/MsDeploy.axd?site = www.mymainwebsite.co.uk/SubApplication ',userName ='xxx',password ='xxx',authtype ='Basic',includeAcls ='False'-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"SubApplication\obj\Test\Package\SubApplication.SetParameters.xml"-allowUntrustedInfo
错误是:
Error Code: ERROR_USER_UNAUTHORIZED
More Information: Connected to the remote computer ("testweb1") using the Web Management Service, but could not authorize. Make sure that you are using the correct user name and password, that the site you are …Run Code Online (Sandbox Code Playgroud) 在Visual Studio 2012中,使用发布配置文件和Web部署可以简化部署.然而,它仍然缺少一些东西,或者可能是我还不知道如何使用它.
PublishProfileName.pubxml我已经检查过源控件中而不是PublishProfileName.pubxml.user每个用户都是本地的?我至少可以保存用户名,但显然不希望将其签入.PublishProfileName.pubxml而是存储在PublishProfileName.pubxml.useras中LastUsedBuildConfiguration.编辑
适用于发布的命令行是
MSBuild.Exe MyProject.sln /p:Configuration=QA /p:DeployOnBuild=true;PublishProfile=PublishToQA;AllowUntrustedCertificate=true /p:authType=NTLM /p:UserName=
Run Code Online (Sandbox Code Playgroud)
在此我想省略/p:Configuration=QAif配置是否成为发布配置文件本身的一部分.
根据我在Visual Studio 2013中读到的关于"SQL Server数据库项目"模板的所有内容,当您创建包含要在其上执行的pre-and -post部署SQL脚本的项目时,应该有一个"Scripts"文件夹出版物.
当我创建一个新的空白DB项目时,我能看到的唯一结构是'properties'和'References'节点:

我已经尝试根据我在线阅读的文章在正确的文件夹中手动添加SQL脚本,但仍然没有乐趣.我会说MSDN文档似乎主要指的是VS2010或最好的2012数据库项目,例如这个MSDN页面假定'Scripts'文件夹已作为项目创建的一部分填充.
我还尝试通过VS2013更新菜单安装2014年11月更新到SQL Server数据库工具,并创建一个新的数据库项目,结果相同.
我知道我可以这样做来构建和部署:
msbuild mysln.sln /p:DeployOnBuild=true /p:PublishProfile=<profile-name>
Run Code Online (Sandbox Code Playgroud)
但我想一步构建,将这些工件移动到另一个位置,然后部署.
我可以使用msdeploy.exe进行部署,但我更喜欢使用msbuild命令(它将找到并使用正确的args为我调用msdepoy),就像我现在这样做,但是我没有使用DeployOnBuild而是想要部署.
编辑:只是为了添加到这里,创建一个msdeploy包很麻烦,msbuild已经为我做了这一切,这就是为什么我想让它为我编排这个.
编辑:有没有办法可以确切地看到msbuild正在运行什么msbuild/msdeploy命令来创建和部署包?我想如果我能记录这些确切的命令我可以手动完成它并让msbuild只创建包并运行msdeploy命令来部署它.但我看不出msbuild实际上在做什么.
如何访问Visual Studio 2010生成的MSDEPLOY命令行.
我问,因为当我手动运行MSDEPLOY时,我可以轻松地在远程服务器上部署,当我在Visual Studio中运行它时,我收到此错误
Web部署任务失败.(无法联系远程代理(url https:// xxxx:8172/msdeply.axd?site =默认网站)确保在目标计算机上安装并启动了远程代理服务.收到了.响应标题'MSDeploy.Response'是''但是'v1'是预期的
远程服务器返回错误:(404)未找到
是否可以构建包含可以使用标准webdeploy工具部署到Web服务器的clickonce应用程序的Web部署包?
这将是理想的过程:
这背后的原因是我们可以构建整个解决方案,包括Web包,运行所有测试,然后只在测试通过后部署.
我目前正在考虑对临时文件夹进行基于文件的部署,将其复制到Web项目中,然后打包Web项目.有更整洁的解决方案吗?