我想知道如何从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 …Run Code Online (Sandbox Code Playgroud) msbuild powershell visual-studio-2010 msdeploy visual-studio
我正在编写一个Web开发目标文件,并希望以编程方式确定"_PublishedWebsites"下面显示的目录的名称.
我目前必须使用这个:
$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)\ _ PublishedWebsites\MyWebApplication
有任何想法吗?
(我没有将此用于有多个网站发布的解决方案)