【问题标题】:Visual Studio Online - The type or namespace name xxx does not exist in the namespace yyyVisual Studio Online - 名称空间 yyy 中不存在类型或名称空间名称 xxx
【发布时间】:2015-12-13 14:01:04
【问题描述】:

我在 VS 2013 中有一个解决方案,并使用 VS Online。 在本地,我可以毫无问题地构建解决方案 (.NET 4.5),但在 VisualStudioOnline 中,我收到构建错误。我没有使用任何 Nuget 包。

当我签入并构建 Visual Studio Online 时,我收到如下错误:

命名空间“DataPipeline”中不存在类型或命名空间名称“Commands”(您是否缺少程序集引用?)

这是我的类型/命名空间之一。该类型存在于此命名空间中,并且也用于解决方案中的其他项目。 这个项目是否可能构建得太早并且找不到类型,因为引用的程序集不存在(但我会假设不同的错误消息)? “缺失”的项目是唯一一个构建为 x86 的项目。

出了什么问题,我可以在哪里查看更多详细信息?我在哪里可以检查/修改构建顺序?

这是类中的命名空间:

using DataPipeline; 
using DataPipeline.Commands; 
using DataPipeline.Formatters; 
using DataPipeline.Helper; 

我在这些命名空间上遇到 3 个构建错误:

DataPipeline.Commands; 
DataPipeline.Formatters; 
DataPipeline.Helper;

“DataPipeline”未在错误中列出,但与未找到的命名空间位于同一项目中。

构建于 2015 年 9 月 16 日晚上 8:15:27 开始。 1> 节点 1 上的项目“C:\a\6d58edb1\DataBridge\DataBridge.sln”(默认目标)。 1>验证解决方案配置: 构建解决方案配置“调试|任何 cpu”。 验证项目: 在解决方案配置“调试|任何 CPU”中未选择项目“DataBridge.Pipeline”进行构建。 1>项目“C:\a\6d58edb1\DataBridge\DataBridge.sln”(1)正在建设中 "C:\a\6d58edb1\DataBridge\DataBridge.Test\DataBridge.Test.csproj" (2) 在节点 1(默认目标)上。 2>准备构建: 创建目录“bin\Debug\”。 1>项目“C:\a\6d58edb1\DataBridge\DataBridge.sln”(1)正在建设中 "C:\a\6d58edb1\DataBridge\DataBridge.Common\DataBridge.Common.csproj" (3) 在节点 2(默认目标)上。 3>准备构建: 创建目录“bin\Debug\”。 1>项目“C:\a\6d58edb1\DataBridge\DataBridge.sln”(1)正在建设中 "C:\a\6d58edb1\DataBridge\DataBridge.Service\DataBridge.Service.csproj" (4) 在节点 1(默认目标)上。 4>准备构建: 创建目录“..\DataBridge.Control\bin\Debug\service\”。 4>项目“C:\a\6d58edb1\DataBridge\DataBridge.Service\DataBridge.Service.csproj” (4) 正在建设中 "C:\a\6d58edb1\DataBridge\DataBridge.Runtime\DataBridge.Runtime.csproj" (5) 在节点 1(默认目标)上。 5>准备构建: 创建目录“bin\Debug\”。 1>项目“C:\a\6d58edb1\DataBridge\DataBridge.sln”(1)正在建设中 "C:\a\6d58edb1\DataBridge\DataBridge.Console\DataBridge.Console.csproj" (6) 在节点 1(默认目标)上。 6>准备构建: 创建目录“bin\Debug\”。 生成绑定重定向: 没有来自 ResolveAssemblyReferences 的建议绑定重定向。

核心编译: C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /参考:C:\a\6d58edb1\DataBridge\DataBridge.Common\bin\Debug\DataBridge.Common.dll /reference:C:\a\6d58edb1\DataBridge\Reference\Ionic.Zip.dll /reference:C:\a\6d58edb1\DataBridge\Reference\log4net\log4net.dll /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\Microsoft.CSharp.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll" /reference:C:\a\6d58edb1\DataBridge\Reference\Quartz\ClientProfile\Quartz.dll /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Core.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Data.DataSetExtensions.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Data.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Net.Http.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Xml.dll" /参考:“C:\程序文件(x86)\参考 程序集\Microsoft\Framework.NETFramework\v4.5\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\DataBridge.Runtime.exe /subsystemversion:6.00 /target:exe /utf8output HeartbeatJob.cs 配置\EmailInfo.cs Configuration\PipelineInfo.cs DataBridgeManager.cs Configuration\SystemInfo.cs RemoteLogListener.cs MailJob.cs Program.cs 配置\DataBridgeInfo.cs DataBridge.cs 属性\AssemblyInfo.cs "C:\Users\buildguest\AppData\Local\Temp.NETFramework,Version=v4.5.AssemblyAttributes.cs"

[错误]DataBridge.Runtime\DataBridgeManager.cs(6,20):错误 CS0234:命名空间中不存在类型或命名空间名称“Commands”

'DataPipeline'(您是否缺少程序集参考?) 5>DataBridgeManager.cs(6,20): 错误 CS0234: 命名空间中不存在类型或命名空间名称“Commands” “DataPipeline”(您是否缺少程序集参考?) [C:\a\6d58edb1\DataBridge\DataBridge.Runtime\DataBridge.Runtime.csproj]

[错误]DataBridge.Runtime\DataBridgeManager.cs(7,20):错误 CS0234:类型或命名空间名称“格式化程序”中不存在

命名空间“DataPipeline”(您是否缺少程序集引用?) 5>DataBridgeManager.cs(7,20): 错误 CS0234: 命名空间中不存在类型或命名空间名称“格式化程序” “DataPipeline”(您是否缺少程序集参考?) [C:\a\6d58edb1\DataBridge\DataBridge.Runtime\DataBridge.Runtime.csproj]

[error]DataBridge.Runtime\DataBridgeManager.cs(69,17): 错误 CS0246: 找不到类型或命名空间名称“管道”(你是

缺少 using 指令或程序集引用?) 5>DataBridgeManager.cs(69,17): 错误 CS0246: 找不到类型或命名空间名称“管道”(您是否缺少使用 指令还是程序集引用?) [C:\a\6d58edb1\DataBridge\DataBridge.Runtime\DataBridge.Runtime.csproj] 5>完成构建项目“C:\a\6d58edb1\DataBridge\DataBridge.Runtime\DataBridge.Runtime.csproj” (默认目标)——失败。 4>完成构建项目“C:\a\6d58edb1\DataBridge\DataBridge.Service\DataBridge.Service.csproj” (默认目标)--失败。

【问题讨论】:

  • 您是使用项目引用,还是直接引用构建的程序集?
  • 我将这些项目作为通常的参考。我检查了构建中的控制台日志,发现:“ValidateProjects:在解决方案配置“调试|任何 CPU”中未选择项目“DataBridge.Pipeline”进行构建。”这是具有“缺失”类型的项目。
  • 这是命名空间:使用 DataPipeline;使用 DataPipeline.Commands;使用 DataPipeline.Formatters;使用 DataPipeline.Helper; “DataPipeline”未在错误中仅列出命名空间“DataPipeline.Commands;DataPipeline.Formatters;DataPipeline.Helper”。 ??我不明白这个。
  • 您是否尝试过在构建中包含该程序集?
  • 在构建中包含该程序集是什么意思?在哪里做?

标签: .net visual-studio azure-devops


【解决方案1】:

当项目未选择构建时,我可以重现您的问题。因此,打开 Configuration Manager,确保为 DataBridge.Pipeline 项目选中 Build。签入整个解决方案,然后重新排队构建。这次应该可以成功构建了。

【讨论】:

  • 谢谢,就是这样!,我一直在“混合平台”中构建(不知道为什么,从未更改为这个),x86 项目(DataBridge.Pipeline)被选中,但是在构建目标“任何 CPU”它不是。
【解决方案2】:

会不会是这个项目建得太早,找不到类型,

查看构建日志以确定正在构建的内容以及构建顺序。如果是这种情况,并且项目依赖于不同的项目,这里是确保构建依赖项目的步骤

  1. 从文件菜单中打开菜单项Project->Project Dependencies(或在Quick Launch 中输入Project Dependencies
  2. 当该屏幕出现时,转到顶级项目并选择依赖于其他项目的构建项目。
  3. 重建,如果失败检查依赖关系并从第 1 步重新开始。

【讨论】:

  • 这个在 VSOnline 的什么地方?在 VS 中我没有问题,所有依赖项都是正确的,每个项目都可以自己构建。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多