1

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

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

现在我想从 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 部署。

关于这里的相关问题

4

1 回答 1

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上提出建议。

于 2013-01-06T03:13:40.730 回答