我知道弹出了很多“DeployOnBuild=true 被忽略”的帖子,但我发现的帖子都没有解决我的问题。
我正在尝试通过将部署到文件共享的构建 RTC 构建服务器构建和部署用 C# 编写的 WCF 服务。我不认为 RTC 是这里的罪魁祸首,但无论如何都要提及重要信息。设置为使用的发布配置文件是在通过 Visual Studio 2015 运行时成功发布的配置文件。当命令触发时,该开关/p:DeployOnBuild=true
被完全忽略。msbuild
该msbuild
命令作为较大的 powershell 脚本的一部分直接从命令行发出。以下是msbuild
我发出的一些不同的命令,但没有成功。
msbuild PathToSolutionFile\SolutionFile.sln /p:DeployOnBuild=true /p:VisualStudioVersion=14.0 /p:Configuration=Debug /p:Platform="Any CPU" /p:PublishProfile=DevelopmentDeploy
msbuild PathToSolutionFile\SolutionFile.sln /p:DeployOnBuild=true /p:VisualStudioVersion=14.0 /p:Configuration=Debug /p:Platform="Any CPU" /p:PublishProfile=ActualPublishProfile.pubxml
msbuild PathToProjectFile\ProjectFile.csproj /p:DeployOnBuild=true /p:VisualStudioVersion=14.0 /p:Configuration=Debug /p:Platform="Any CPU" /p:PublishProfile=DevelopmentDeploy
这些中的每一个都构建成功,并且生成的日志文件没有显示甚至尝试使用发布配置文件的迹象,更不用说跳过了。即使我/v:diag
在生成的日志中包含用于更详细输出的开关也是如此。
我求助于尝试一个 powershell 脚本,尽管对于我想要完成的工作来说不是必需的。这是我作为测试快速组合在一起的脚本,以便我可以使用变量来解决我的开关的任何潜在问题。
$serverPath = 'C:\ServerPath'
$solutionPath = $serverPath + '\ProjectFolder\SolutionFile.sln'
$projectPath = $serverPath + '\ProjectFolder\ProjectFile.csproj'
$configuration = 'Debug'
$platform = "Any CPU"
$publishProfile = 'DevelopmentDeploy'
$buildProperties = "/p:DeployOnBuild=true /p:VisualStudioVersion=14.0 /p:Configuration=$configuration /p:Platform=$platform /p:PublishProfile=$publishProfile"
Write-Host ""
Write-Host "-- msbuild STARTING --"
Write-Host ""
$msbuild = 'C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe'
# Run MSBuild
& $msbuild ($solutionPath, $buildProperties)
Write-Host ""
Write-Host "-- msbuild COMPLETE --"
Write-Host ""
同样,这个快速的 powershell throw-together 也与 /v:diag 一起运行,没有任何关于为什么 DeployOnBuild=true 被跳过的报告问题。
任何帮助或见解将不胜感激。
谢谢!