我在Visual Studio Team Services中有一个构建定义(也就是Visual Studio Online?我真的不确定它的正确名称),它不会产生工件,我真的不确定原因。解决方案文件中的主项目是使用TopShelf构建的Windows服务。我怀疑Visual Studio Build任务中的MSBuild参数可能是错误的。我从一个正在运行的MVC项目的构建定义中复制它们,但我发现它们可能不适用于Windows服务。
他们是:
/p:DeployOnBuild=true
/p:WebPublishMethod=Package
/p:PackageAsSingleFile=true
/p:SkipInvalidConfigurations=true
/p:PackageLocation="$(build.artifactstagingdirectory)\\"
我在此过程中有一个Copy Files任务和一个Publish Build Artifacts任务,但显然$(build.artifactstagingdirectory)\\
是空的。我收到了这个警告:
## [警告]目录'd:\ a \ 1 \ a'为空。什么都不会被添加到构建工件
奇怪的是,在我发布符号的过程中的另一项任务中,一切似乎都顺利完成。
还有一点:我正在使用托管构建代理。不确定这是否重要。
这是我能想到的所有相关信息。我离开基地吗?我过去使用过Octopus Deploy,我知道我必须在我的服务上安装Octopack。我需要在这里做类似的事吗?
答案 0 :(得分:2)
您不需要任何MSbuild参数;其中大多数适用于ASP .NET项目,并且不会对控制台应用程序执行任何操作。
用/p:OutDir=$(Build.ArtifactStagingDirectory)
替换所有内容。这将告诉MSBuild将构建输出放在工件临时目录中。