TFS构建失败。对源代码管理中的文件的未解析引用

时间:2012-08-24 02:48:21

标签: c# visual-studio-2010 build tfs

我有一个在本地运行良好的构建,但是,不会在我们的TFS环境中构建。

我收到以下错误;

  

C:\的Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets   (1578):无法解析此引用。无法找到   程序集“Assembly.Services.Common”。检查以确保装配存在   在磁盘上。如果您的代码需要此引用,您可能会得到   编译错误。

有问题的程序集被检入TFS并位于以下位置;

  

/Root/BaseBinRefs/Assembly.Services.Common.dll

它在.net框架之外没有任何外部引用。

未能构建的项目位于TFS中的以下位置

  

/根/服务/ AssemblySolutionFolder / AssemblyThatIsFailing

在解决方案中的项目中引用程序集,并且程序集的HintPath看起来是正确的;

   <Reference Include="Assembly.Services.Common, Version=1.0.0.0, 
      Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\BaseBinRefs\Assembly.Services.Common.dll</HintPath>
    </Reference>

如上所述,它在本地构建,我没有理由认为它应该在TFS内失败。需要注意的是,我一般都是TFS的新手,并且仍然试图将我们的第一个项目集成到这个环境中。

更新1

使用ProcessMonitor,我看到TFS尝试从;

加载文件

C:\构建\ 1 \根\ BaseBinRefs \ Assembly.Services.Common.dll

哪个不存在,但在相对意义上是正确的。现在,当我查看Sources目录时,我看到包含Assembly.Services.Common.dll的BaseBinRefs,因此它已经下载了它们(我将BaseBinRefs添加到构建定义中)

1 个答案:

答案 0 :(得分:11)

这可能是关于如何在构建定义中设置工作文件夹的问题(在工作区下)。

如果我正确理解了路径方案,则设置如下路径应该有效:

Active |$/TeamProject/Root/BaseBinRefs/                    |$(SourceDir)\Root\BaseBinRefs
Active |$/TeamProject/Root/Services/AssemblySolutionFolder/|$(SourceDir)\Root\Services\AssemblySolutionFolder
但是,例如,这会导致麻烦:

Active |$/TeamProject/Root/BaseBinRefs/                    |$(SourceDir)\
Active |$/TeamProject/Root/Services/AssemblySolutionFolder/|$(SourceDir)\