我知道会弹出很多这样的“ 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组合也与/ v:diag一起运行,而没有关于为何跳过DeployOnBuild = true的任何报告问题。
任何帮助或见识将不胜感激。
谢谢!