Mik*_*ike 18 msbuild powershell visual-studio-2010 msdeploy visual-studio
我想知道如何从PowerShell以与Visual Studio相同的方式发布.
例如,当您使用MVC项目启动Visual Studio时; 然后右键单击项目并选择"发布"; 出现一个对话框,您可以在再次单击"发布"中填写一些设置.它按预期神奇地推动您的网站.它还会创建一个文件来保存这些设置.projectName.Publish.xml.
该文件是我希望能够以完全相同的方式使用它的原因.有一些设置可以在powershell中进行操作,将应用程序推送到具有不同配置的多个站点.
我查看了"msbuild target:publish",它只生成(从包含.csproj的目录运行):
MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish
Run Code Online (Sandbox Code Playgroud)
我试过"msbuild projectfile target:publish",它产生:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: target:build
Run Code Online (Sandbox Code Playgroud)
我还看了几个msdeploy变种.这不可能这么难!?如果您可以在工作室中右键单击,则可以执行该任务.
我开始怀疑这是否需要满月并将鸡头切掉.(我花了很多时间在这上面!)
**编辑:我试过李的建议:
msbuild target:publish Mvc.csproj
Run Code Online (Sandbox Code Playgroud)
哪会产生这个错误:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: Mvc.csproj
For switch syntax, type "MSBuild /help"
Run Code Online (Sandbox Code Playgroud)
**编辑:根据DaveE的建议,我试过:
msbuild target:publish Mvc.csproj
Run Code Online (Sandbox Code Playgroud)
哪会产生这个错误:
MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish=PassportHealth.PatientSimple.Mvc.csproj
Run Code Online (Sandbox Code Playgroud)
我还回到了"发布"目标(http://msdn.microsoft.com/en-us/library/ms165431.aspx)的文档,这似乎很清楚,语法是:
msbuild target:publish
Run Code Online (Sandbox Code Playgroud)
因此,经过多次重读后,我得出的结论是:发布目标是一次性部署.exe文件而不是MVC网站.我找到了http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx,这个问题相当清楚.虽然我没有看到如何通过msdeploy命令在这个中使用"publish.xml"文件.
Jim*_*mmy 21
projectName.publish.xml文件仅通过Visual Studio用于一键式发布.对于MSBuild,您需要直接在命令行上传递一堆参数(/ p:Param1 = value1; Param2 = value2; ...).例如:
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=InProc /p:MSDeployServiceUrl=localhost /p:DeployIisAppPath="Default Web Site/NewOrleansJazz" /p:UserName=domain\user /p:Password=myPassword(来源)
请注意,在VS11预览版(在BUILD会议上发布)中,有一个新文件替换了projectName.publish.xml:MyPublishSettings.pubxml.这个文件基本上是将publish.xml文件和projectName.wpp.targets合并为一个文件的组合(还为每个配置文件拆分,而不是将它们全部保存到publish.xml中,例如TestSettings.pubxml,ProductionSettings.pubxml),并且可以使用更简单的方式从命令行使用msbuild MyProject.csproj /t:WebPublish /p:PublishProfile="myProfile"
[编辑:]几个笔记重新:你帖子中的信息:
/,例如/t[arget]:foo /p[roperty]:var=value/t:build /p:DeployOnBuild=trueWeb项目来使用发布任务(如上所述).VS11中的新功能/t:WebPublish还包含一组更简单的参数,即您希望使用的.pubxml文件.
/t:WebPublish由于未在解决方案级别定义目标,因此将失败.它只能直接用于Web项目的项目文件.您仍然可以/p:DeployOnBuild=true在解决方案级别使用,因为参数值将传递给正在构建的每个项目,但任何不使用该值的项目都会忽略该值.| 归档时间: |
|
| 查看次数: |
7503 次 |
| 最近记录: |