【发布时间】:2018-07-14 19:40:26
【问题描述】:
我无法让 TFS 构建在服务器上运行。我有 A.exe 引用 2 个类库:
-> A.EXE
B.DLL
C.DLL
我有一个引用 EXE 和 2 个类库的测试类库:
->Test.DLL
A.EXE
B.DLL
C.DLL
我发现传递给编译器的 EXE 参考(在本例中为 VBC.exe)在编译测试项目时丢失。
从命令行运行:msbuild "theSolution.sln":
vbc.exe /noconfig /imports:Microsoft.VisualBasic,System,System.Collections,System.Collections.Generic,System.Data,System.Diagnostics,System.Linq,System.Xml.Linq /optioncompare:二进制 /optionexplicit+ /optionstrict+ /optioninfer+ /nostdlib /platform:x86 /rootnamespace:SEAchange.Test /sdkpath:"C:\Program Files (x86)\Reference 程序集\Microsoft\Framework.NETFramework\v4.5" /highentropyva+ /doc:obj\Debug\doco.Test.xml /define:"CONFIG=\"Debug\",DEBUG=-1,TRACE=-1,_MyType=\"Windows\",PLATFORM=\"AnyCPU\""
在构建服务器和开发 PC 上,它包含 EXE 参考并且可以工作:
/reference:c:\TFSBuildAgents_work\1\s\packages\NUnit.3.9.0\lib\net45\nunit.framework.dll,c:\TFSBuildAgents_work\1\s\A\bin\Debug \A.EXE,c:\TFSBuildAgents_work\1\s\B\bin\Debug\B.dll,c:\TFSBuildAgents_work\1\s\C\bin\Debug\C.dll
在我的构建服务器上,通过构建代理运行,它不包含 EXE 引用并且失败并出现错误 BC30002:未定义类型“xxx”:
/reference:c:\TFSBuildAgents_work\1\s\packages\NUnit.3.9.0\lib\net45\nunit.framework.dll,c:\TFSBuildAgents_work\1\s\B\bin\Debug\B。 dll,c:\TFSBuildAgents_work\1\s\C\bin\Debug\C.dll,
有人知道如何在构建服务器上包含对 EXE 的引用吗?
这是 TFS MSBuild 命令:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" "c:\TFSBuildAgents_work\1\s\theSolution.sln" /nologo /nr:false /dl:CentralLogger,"C:\TFSBuildAgents_work_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.119.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=cd19916c-1cb1-41e0 -aa14-c251a8dd5925|SolutionDir=c:\TFSBuildAgents_work\1\s"*ForwardingLogger,"C:\TFSBuildAgents_work_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.119.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild .Logger.dll" /p:platform="任何 cpu" /p:configuration="release" /p:VisualStudioVersion="15.0" /p:_MSDeployUserAgent="TFS_b2b3a2c7-b2fe-484a-80d8-1f427d4273ec_build_1_27"
服务器:Win2016、本地 TFS2017sp2、VS2017
开发:Win7、VS2017
编辑:已添加另一个项目,它引用了 EXE。因为它是在测试项目之前构建的,所以它失败了,但有不同的错误消息:
错误 CS0246:找不到类型或命名空间名称“A.EXE 项目”(您是否缺少 using 指令或程序集引用?)
【问题讨论】:
标签: .net tfs build reference msbuild