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

时间:2013-01-05 20:09:36

标签: asp.net visual-studio visual-studio-2012

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

  1. 在Visual Studio中创建发布配置文件(右键单击项目 - >发布)
  2. 已确认无效。当我按下发布时,这些东西会去它应该去的地方(FTP站点)
  3. 现在我想从TFS做这个,这意味着MSBuild。

    在命令行中,我尝试了这个:

    msbuild.exe WebApplication1.csproj /p:DeployOnBuild=true;PublishProfile="ftp";Password={INSERT-PASSWORD}
    

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

    WebApplication1\Properties\PublishProfiles\ftp.pubxml

    默认情况下,Visual Studio 2012就是这样。

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

    Related Question on SO here

1 个答案:

答案 0 :(得分:5)

我刚刚在http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx发布了一个博客,希望能为您解决这个问题。

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

/p:VisualStudioVersion=11.0

我在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打开建议。