Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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
C# TFS构建失败。对源代码管理中的文件的未解析引用_C#_Visual Studio 2010_Build_Tfs - Fatal编程技术网

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

C# TFS构建失败。对源代码管理中的文件的未解析引用,c#,visual-studio-2010,build,tfs,C#,Visual Studio 2010,Build,Tfs,我有一个在本地运行良好的构建,但是,它不会在我们的TFS环境中构建 我得到以下错误 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1578):无法解析此引用。找不到服务器 程序集“assembly.Services.Common”。检查以确保该程序集存在 在磁盘上。如果您的代码需要此引用,您可以 编译错误 相关组件已检入TFS,并位于以下位置 /根/BaseBinRefs/Assembly.Se

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

我得到以下错误

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

相关组件已检入TFS,并位于以下位置

/根/BaseBinRefs/Assembly.Services.Common.dll

它在.net framework之外没有任何外部引用

未能生成的项目位于TFS中的以下位置

/根目录/服务/AssemblySolutionFolder/AssemblyThat失败

组件在解决方案中的项目中被引用,并且组件的提示路径似乎是正确的

   <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>

假的
..\..\..\BaseBinRefs\Assembly.Services.Common.dll
如前所述,它是在本地构建的,我看不出为什么它会在TFS中失败。需要注意的是,我一般不熟悉TFS,并且仍在尝试将我们的第一个项目集成到这个环境中

更新1

使用ProcessMonitor,我看到TFS试图从加载文件

C:\Builds\1\Root\BaseBinRefs\Assembly.Services.Common.dll


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

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

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

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)\

找不到程序集-启动生成时在服务器上使用ProcessMonitor,能否告诉我们它在哪里查找
assembly.Services.Common.dll
?@Jeremythonpson Update已添加,感谢在此查看可能的解决方案:@pantelif谢谢。我已经确认了这一点,并且它确实将文件复制到了我的源代码中,但是构建看起来仍然在另一个位置。你能用你的构建空间映射更新这个问题吗?这几乎肯定是问题的根源。我只是想添加使用GAC来解决这个问题。@Jeremy:在我看来,在GAC中插入源代码控制的程序集不是一个好主意。@pantelif如上所述,我已经添加了工作文件夹,它是正确的。这非常有趣。使用Visual Studio打开驻留在
C:\Builds\1
下的SLN。我希望VS2010能够纠正ref&您的解决方案应该可以编译。现在,将这个失败的
程序集.csproj
与签入的程序集进行比较-这可能会为问题提供一个提示。奇怪的是,我(暂时)实现的解决方案是使用一个本地binrefs文件夹,尽管这样做有效,但我更愿意解决最初的问题。我把所有东西都搬回去了,现在一切都正常了。我将把它标记为正确的答案,我相信这一直都与此有关,尽管如上所示,我正确地添加了路径。