我已经能够通过从命令行运行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打包并发布到本地文件系统。它似乎根本没有引用发布配置文件。
发布于 2014-03-19 06:17:28
这不起作用的原因与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>当右键单击项目并选择publish时,可能添加了打包信息。我认为这是导致构建无法正确部署的原因,因为它向msdeploy提供了单独的指令。
发布在本地工作的原因是,它是为没有这些设置的调试配置生成的。
https://stackoverflow.com/questions/22446504
复制相似问题