Msbuild 如何在内置TFS联机后访问工件文件夹?

Msbuild 如何在内置TFS联机后访问工件文件夹?,msbuild,azure-devops,.net-core,Msbuild,Azure Devops,.net Core,PreInfo:net核心web api(vs2015)与普通项目混合使用 我已经花了将近2天的时间来让这个工作和搜索,并尝试了我能想到的一切,但我只是不能为我的生活得到TFS在线的建设和发布一起玩 生成(发布工件步骤)显示“目录“D:\a\1\a”为空。将不向生成工件“drop”添加任何内容。” 但是“运行网络”的步骤说 “已发布到D:\a\1\s\Operator\MobileService\root\MobileService\src\AMP.Operator.MobileService\

PreInfo:net核心web api(vs2015)与普通项目混合使用

我已经花了将近2天的时间来让这个工作和搜索,并尝试了我能想到的一切,但我只是不能为我的生活得到TFS在线的建设和发布一起玩

生成(发布工件步骤)显示“目录“D:\a\1\a”为空。将不向生成工件“drop”添加任何内容。

但是“运行网络”的步骤说

“已发布到D:\a\1\s\Operator\MobileService\root\MobileService\src\AMP.Operator.MobileService\bin\release\net452\win7-x64\publish”

…所以它一定在某个地方发行版可以拾取它,但无论我尝试什么,我都无法拾取它

这是我的构建设置

网络运行

出版

使用$(System.DefaultWorkingDirectory)/MobileService Dev的realse请注意,我在构建中尝试了$(build.artifactStaginDirectory)的每个组合来发布,但我确信这应该指向构建的发布文件夹


我希望有人能给我一个解决办法。我只是不明白这有多困难。

在构建定义中,我建议添加一个
复制文件
步骤,在运行
发布工件
步骤之前,将构建工件从
msbuild
结果复制到构建的工件暂存目录

  • 源文件夹:
    $(Build.SourcesDirectory)
  • 内容:
    **\bin\$(构建配置)\**
  • 目标文件夹:
    $(Build.ArtifactStagingDirectory)

我假设
$(BuildConfiguration)
变量是根据您的定义定制的,可能是
Debug
Release
。我不确定Run dotnet步骤到底做了什么,但是我设置的这个构建定义正确地发布了构建工件。我正在运行的发布构建工件步骤与您的步骤相同,只是启用的唯一控制选项是
已启用


我还在TFS 2015 update 2上运行。

您需要为dotnet publish命令指定输出参数(-output/-o)。 论据:

Publish -c $(BuildConfiguration) -o $(Build.ArtifactStagingDirectory)

顺便说一句:你说的“运行点网”步骤是“发布到D:\a\1\s…”,文件在D:\a\1\s中,没有文件在D:\a\1\a中(一个是s,另一个是a)。

如果你只想看一下,你可以下载这些文件。转到构建,单击工件选项卡,然后下载,如下所示:


我认为我的问题完全与网络核心有关。。对不起,你的方法无效。现在我在看他的@Sturla,谢谢你的反馈。我还注意到,dotnet工具的工作目录是一个TFS路径,而不是实际路径。我不确定这是故意的还是可能会引起问题。它可能是一个参数,可以用来代替您的工作目录。生成结果不应该放置到“按定义”的artifacts文件夹中,而不需要手动复制任何附加步骤吗?@SerG如果您说的是复制到
$(build.ArtifactStagingDirectory)
,这不是自动完成的。生成的结果(bin和obj文件夹)保留在源文件夹中(即
s
文件夹aka
$(build.sourcesddirectory)
)。如果您的目标文件夹是ArtifactStagingDirectory(即
a
文件夹),并且您没有对其进行某种复制,则不会发布任何文件。关于这个变量的文档可以找到,我已经有了。看起来从2015年到2017年TFS的逻辑发生了变化,或者我只是有点困惑。用我的解决方案尝试后的结果是什么?我的构建工件步骤是2018-04-25T19:30:24.0964490Z Upload'C:\Users\userrr\Downloads\vsts-agent-win7-x64-2.122.1#work\4\s'到文件容器:“#/917/drop”我在哪里可以找到路径“#/917/drop”它不在我的代理或TFS?有什么想法吗?我看不到图像,但不再显示使用复制任务和发布任务分离(复制和发布已被弃用)工件选项卡。有什么办法让它出现吗?