Azure网站 - 从内部发布TFS会忽略发布配置文件

时间:2014-03-17 03:36:21

标签: msbuild tfs2012 azure-web-sites

我已成功通过从命令行运行MSBuild来发布到Windows Azure网站。

我执行的命令是:

msbuild.exe /p:DeployOnBuild=true /p:PublishProfile=azure /p:Password=thepassword /p:PublishDir=\\filesvr\DropLocation\ /p:VisualStudioVersion=12.0

当我从命令行从本地计算机运行此命令时,它会将部署推送到Windows Azure网站。我也可以从构建机器的命令行运行命令,它可以正常工作。在这两种情况下,我都是从网站项目的目录中运行命令。

然而,当我创建一个构建(基于默认模板)并添加参数

/p:DeployOnBuild=true /p:PublishProfile=azure /p:Password=thepassword /p:PublishDir=\\filesvr\DropLocation\ /p:VisualStudioVersion=12.0

作为TFS构建的MSBuild参数,然后构建成功完成但不发布到Azure。它执行标准Web包并发布到本地文件系统。它似乎根本没有引用发布配置文件。

1 个答案:

答案 0 :(得分:0)

这不起作用的原因与csproj文件中遗留的东西有关:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <PublishDatabases>false</PublishDatabases>
    <PackageAsSingleFile>true</PackageAsSingleFile>
    <FilesToIncludeForPublish>OnlyFilesToRunTheApp</FilesToIncludeForPublish>
    <DeployOnBuild>true</DeployOnBuild>
    <DeployTarget>Package</DeployTarget>
  </PropertyGroup>

应该是

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <PublishDatabases>false</PublishDatabases>
  </PropertyGroup>

右键单击项目并选择发布时,可能会添加包装信息。我认为它导致构建无法正确部署,因为它向msdeploy提供了单独的指令。

发布在本地工作的原因是它正在为没有这些设置的调试配置构建。