Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Microsoft(TFS)生成服务器-类型或命名空间名称'';命名空间';中不存在';(是否缺少程序集引用?)_Visual Studio 2010_Tfsbuild - Fatal编程技术网

Visual studio 2010 Microsoft(TFS)生成服务器-类型或命名空间名称'';命名空间';中不存在';(是否缺少程序集引用?)

Visual studio 2010 Microsoft(TFS)生成服务器-类型或命名空间名称'';命名空间';中不存在';(是否缺少程序集引用?),visual-studio-2010,tfsbuild,Visual Studio 2010,Tfsbuild,我正在为我们的团队设置buildserver 背景 我们正在使用Microsoft Visual Studio 2010 Ultimate。我们的产品包含C代码(主要)、外部DLL和C代码。我们正在使用.NET4.0,有70多个项目 我们正在处理代码的3个分支: 生产部门(目前发布的内容) 测试分支(热修复、错误修复、最终用户测试) 发展分部(添加新功能) 所有分支都在TF源控制下 目标 我们想要的是有一个构建服务器,每天为所有分支构建和运行一次所有单元测试,构建服务器应该使用源代码管理中的

我正在为我们的团队设置buildserver

背景
我们正在使用Microsoft Visual Studio 2010 Ultimate。我们的产品包含C代码(主要)、外部DLL和C代码。我们正在使用.NET4.0,有70多个项目

我们正在处理代码的3个分支:

  • 生产部门(目前发布的内容)
  • 测试分支(热修复、错误修复、最终用户测试)
  • 发展分部(添加新功能)
所有分支都在TF源控制下

目标
我们想要的是有一个构建服务器,每天为所有分支构建和运行一次所有单元测试,构建服务器应该使用源代码管理中的代码。我们的目标是有一些快速的标准错误检测。我们宁愿少维护构建服务器,而不是不维护

我们不打算使用buildserver生成的构建,我们只想使用buildserver不断地构建和单元测试我们的分支

设置了什么
目前有两个构建定义,一个用于测试分支,另一个用于开发分支,这两个构建定义都是从源代码管理中获取代码的(这一部分很好),但这里是乐趣的开始

问题
测试分支可以很好地构建和运行单元测试

由于(或类似5个)错误,开发分支无法构建:

错误是针对项目X引用项目Y。项目X和Y都是C#.Net 4.0项目,我们完全控制它们,X和Y都编译到DLL。项目Y包含项目X中的类正在实现的接口

恼人的细节是,无论是项目X还是项目Y,测试分支和开发分支都没有区别。这两个项目在过去3个月内完全相同

所以问题是,为什么它在测试部门工作而在开发部门不工作

我已经测试过:
-这些项目相互之间的引用是正确的。 -所有3个分支在我自己/我的任何同事开发机器上构建都没有问题(我们在5台不同的机器上进行了测试)。 -我试图删除整个X项目并重新创建它,但没有成功。 -我试图删除整个Y项目并重新创建它,但没有成功。 -我试图更改ProjectX项目及其类的名称空间,但没有成功。 -我试图更改project Y project及其类的名称空间,但没有成功。 -(我甚至重新启动了我的开发机器) -在buildserver设置为build之后,所有更改都会签入源代码管理中

额外信息
我一直在挖掘日志文件,发现了一些有趣的细节,这是关于在开发部门构建项目X的细节

Task "AssignProjectConfiguration"
  Project reference "..\..\A" has been assigned the "Debug|x86" configuration.
  Project reference "..\..\Y" has been assigned the "Debug|x86" configuration. (can see there is a project Y)
  Project reference "..\..\B" has been assigned the "Debug|x86" configuration.  
但是在任务“ResolveAssemblyReference”中

Task "ResolveAssemblyReference"
  TargetFrameworkMoniker:
      .NETFramework,Version=v4.0
  TargetFrameworkMonikerDisplayName:
      .NET Framework 4
  TargetedRuntimeVersion:
      v4.0.30319
  Assemblies:
      System
      System.Xml.Linq
      System.Data.DataSetExtensions
      Microsoft.CSharp
      System.Data
      System.Xml
      System.Core
  AssemblyFiles:
      C:\Builds\1\A
      C:\Builds\1\B
(----- Missing project Y -----)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
同一任务的测试分支在何处

Task "ResolveAssemblyReference"
  TargetFrameworkMoniker:
      .NETFramework,Version=v4.0
  TargetFrameworkMonikerDisplayName:
      .NET Framework 4
  TargetedRuntimeVersion:
      v4.0.30319
  Assemblies:
      System
      System.Data.Entity
      System.Xml.Linq
      System.Data.DataSetExtensions
      Microsoft.CSharp
      System.Data
      System.Xml
      System.Core
  AssemblyFiles:
      C:\Builds\1\A
      C:\Builds\1\B
      C:\Builds\1\Y (There it is)
     C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
因此,出于某种原因,感觉它只是“忘记”了从项目X到项目Y的引用


帮助

我也有同样的问题

我花了几个小时才发现,在这种情况下,问题不是我的错:-)

:

出现此问题的原因是.NET Framework库中的Path.GetFullPath中存在错误。 这是VisualStudio2010中的一个已知问题

症状:

。。。当您尝试构建具有多个 项目之间存在依赖关系,在 特定条件生成失败,并显示以下错误消息

错误消息: “C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (1200,9):警告:引用的项目与 当前目录“”中引用的项目不存在

当以下情况发生时,生成失败,并显示上面的错误消息 条件得到满足

  • 您有一个多个项目的解决方案,这些项目之间存在依赖关系
  • 以下两个路径长度之和精确相加为259个字符(=最大路径–1)
  • 1) 引用项目目录的路径。2) 相对路径 指向当前目录中的引用项目(=引用 项目目录)

    注意:MAX_PATH是Windows API和API定义的最大路径长度 设置为260个字符

    解决方法:

    要解决此问题,可以更改路径长度并确保 以下两条路径长度之和不等于259 人物

  • 引用项目目录的路径

  • 相对路径 指向当前目录中的引用项目(=引用 项目目录)


  • 我最近遇到了同样的错误。在VS2010中本地构建的解决方案很好,但在构建服务器上始终失败。最后,MSBuild定义设置为版本x86配置,但项目引用了bin\x86\Debug中的程序集,而不是bin\x86\Release中的程序集


    验证引用的是程序集的发布版本而不是调试版本(并根据需要进行更正)似乎对我起到了作用。

    我刚刚遇到了一个类似的问题,最后处理代码的开发人员决定在obj\debug目录中添加对某些DLL的引用

    不幸的是,我这边的问题完全不同

    我正在为相同的通用代码构建两个不同的版本,一个用于.Net4,另一个用于Silverlight 5
    Task "ResolveAssemblyReference"
      TargetFrameworkMoniker:
          .NETFramework,Version=v4.0
      TargetFrameworkMonikerDisplayName:
          .NET Framework 4
      TargetedRuntimeVersion:
          v4.0.30319
      Assemblies:
          System
          System.Data.Entity
          System.Xml.Linq
          System.Data.DataSetExtensions
          Microsoft.CSharp
          System.Data
          System.Xml
          System.Core
      AssemblyFiles:
          C:\Builds\1\A
          C:\Builds\1\B
          C:\Builds\1\Y (There it is)
         C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll
    
    <ProjectReference Include="..\B.csproj">
      <Project>{F3006530-D421-4A89-AA8B-376DBAA31E03}</Project> - wrong Id!
      <Name>ProjectB</Name>
    </ProjectReference>