使用VS2012上的MSBuild从命令行部署到FTP无法正常工作,没有错误

010*_*101 1 asp.net visual-studio visual-studio-2012

我正在尝试从命令行执行发布配置文件.

  1. 在Visual Studio中创建发布配置文件(右键单击项目 - >发布)
  2. 验证它有效.当我按发布时,这些东西会去它应该去的地方(FTP站点)

现在我想从TFS做到这一点,这意味着MSBuild.

从命令行,我试过这个:

msbuild.exe WebApplication1.csproj /p:DeployOnBuild=true;PublishProfile="ftp";Password={INSERT-PASSWORD}
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误.并且文件不会在FTP站点上发布.发布配置文件的名称是ftp.pubxml.它在这里:

WebApplication1\Properties\PublishProfiles\ftp.pubxml

这就是Visual Studio 2012默认设置的地方.

我正在使用FTP部署,而不是Web部署.没有点击一次.网上有很多关于这两者的内容.这是一个无聊的旧FTP部署.

关于SO的相关问题

Say*_*imi 5

我刚刚在http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx发布了一个博客,希望能为您清除这一点.

命令行不支持FTP发布.您会收到一个错误,让您知道这一点,但您的命令行缺少一个非常重要的属性

/p:VisualStudioVersion=11.0
Run Code Online (Sandbox Code Playgroud)

我在http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx上有关于此属性的更多详细信息.总结一下,该VisualStudioVersion属性的引入是为了让VS 2010和VS 2012共享项目文件和解决方案.如果未指定此属性的值,则默认值为10.0.

在您的情况下,由于您正在构建项目,因此您需要指定此属性.由于您未指定该值,因此默认为10.0,并且使用的构建+发布过程来自VS 2010.显然,您的计算机上安装了VS2010 + VS2012.

如果您传入属性/p:VisualStudioVersion=11.0,您将收到的错误应该让您知道命令行不支持FTP发布.

注意:如果您确实希望我们支持FTP的命令行发布,最好的办法是在aspnet.uservoice.com上打开一个建议.