【问题标题】:TFS Build, missing ref in compiler CLI: Error BC30002: Type 'xxx' is not definedTFS 构建,编译器 CLI 中缺少引用:错误 BC30002:未定义类型“xxx”
【发布时间】: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


    【解决方案1】:

    项目从VS2010升级到2017,从Jenkins升级到TFS。

    我最终只是创建了一个新解决方案并添加了所有项目。一个有不正确的参考路径并导致上面报告的症状。

    【讨论】:

    • @Jeremy Thompson,感谢您在这里分享您的解决方案,您可以将其标记为答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多