我在工作流程的最高级别创建了自定义变量SourcesPath
。
然后我初始化了它。
我甚至在查看日志时看到了它的值。
00:00
Initialize Sources Directory
Initial Property Values
Value = C:\Builds\3\Project Demo\Sources
Final Property Values
To = C:\Builds\3\Project Demo\Sources
Value = C:\Builds\3\Project Demo\Sources
00:00
Initialize SourcesPath For Later Use
Initial Property Values
Value = C:\Builds\3\Project Demo\Sources
Final Property Values
To = C:\Builds\3\Project Demo\Sources
Value = C:\Builds\3\Project Demo\Sources
后来它被用在InvokeProcess活动中。
但是变量在运行时似乎是空的:
00:02
InvokeProcessSonar
Initial Property Values
Arguments = -X
EnvironmentVariables =
FileName = c:\\Scan.bat
OutputEncoding = System.Text.SBCSCodePageEncoding
WorkingDirectory = \\Src\\Solution
c:\\Scan.bat
Final Property Values
Arguments =
EnvironmentVariables =
FileName = c:\\Scan.bat
OutputEncoding = System.Text.SBCSCodePageEncoding
Result = 0
WorkingDirectory = \\Src\\Solution
Final Property Values
AgentSettings = Use agent where Name=* and Tags is empty; Max Wait Time: 04:00:00
AssociateChangesetsAndWorkItems = True
BuildNumberFormat = $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)
BuildSettings = Build $/ProjectDemo/Src/Solution/ProjectDemo.sln with default platform and configuration
CleanWorkspace = All
CreateLabel = True
DisableTests = False
DropBuild = False
GetVersion =
MSBuildArguments =
MSBuildPlatform = Auto
PerformTestImpactAnalysis = True
PrivateDropLocation =
RunCodeAnalysis = AsConfigured
SourceAndSymbolServerSettings = Index Sources
TestSpecs = Run tests in assemblies matching **\*test*.dll
Verbosity = Diagnostic
The directory name is invalid
我会错过什么吗?
答案 0 :(得分:0)
该名称可能与嵌套作用域中的另一个变量发生冲突。
我通常会添加一个前缀(比如一个下划线_
)来标记我的变量和活动,这样就可以很容易地发现标准内容和定制内容。
根本原因是假设变量值通过RunOnAgent无缝流动,而不是。 RunOnAgent范围是与工作流的其余部分完全隔离的上下文。 TFS负责单向编组(朝向RunOnAgent范围)但不反过来:只编译“构建信息”节点中的数据。请参阅Returning Values From An AgentScope。
在您的情况下,您唯一的机会是在RunOnAgent范围内移动InvokeProcess。
答案 1 :(得分:0)
如果你想在工作流程结束时运行一些东西,我建议你把你的调用过程放在最后一步,这是Try Compile,Test和Publish的一部分,这将是代理范围内最后一件事。 ,你的变量应该仍然在上下文中