找不到使用TFS 2012构建.net 3.5应用程序的csc错误cs0006元数据文件

Kev*_*ice 33 migration msbuild tfs2008 tfs2012

我们正在从TFS 2008升级到TFS 2012.我们的大多数应用程序都是.net 3.5应用程序.
我们已经设置了TFS 2012环境并完成了迁移过程.当我们尝试构建.net 3.5应用程序时,我们收到错误:

csc error cs0006 metadata file could not be found........
Run Code Online (Sandbox Code Playgroud)

如果我们使用.net 3.5应用程序,将其升级到.net 4.x,然后再次运行构建,它运行正常.

我无法升级迁移过程中的每个应用程序.我是否可能在迁移或构建框中缺少支持3.5的内容?

我在构建服务器上安装了VS 2008,2010,2012.我安装了.net框架等.

任何帮助都有帮助.

Vas*_*nan 15

通过右键单击解决方案资源管理器中的项目并选择"项目依赖项",可以在Visual Studio 2012中指定项目依赖项和项目构建顺序.通过执行此操作,您的解决方案文件将得到修复.在我的情况下,我能够解决此问题,而无需手动编辑解决方案文件.

  • 我只是右键单击解决方案,然后选择“查看项目依赖项”。不知道它做了什么,但是当我关闭出现的对话框时,它起作用了! (2认同)

Pau*_*oll 8

我们在分支之间切换这些问题(有重大变化).当它发生时我推荐以下内容:

  • 关闭Visual Studio
  • 关闭w3wp.exe实例(偏执,只有当你通过本地IIS托管时)
  • 搜索并删除所有bin和obj文件夹
  • 从C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files清除所有中间JIT编译程序集

遵循这一套将做"清洁解决方案"应该做的事情,但事实并非如此.基本上我们试图删除任何在任何地方缓存的任何机会(这是这些问题的最常见原因).

当然,您的里程可能会有所不同,但对于我们来说,120个项目和130万行代码重构会定期抛出这个问题,并且可靠地解决它.


小智 7

我也有同样的错误。

解决方法是检查路径。在我的路径中,一个文件夹的名称为abc%20ert。这是从 git 同步空间而来的。Visual Studio路径中的%20有问题。删除这个就解决了这个问题。


小智 6

这似乎是由Visual Studio解决方案文件不包含项目依赖项的事实引起的.我发现我必须手动编辑解决方案文件以使用项目GUID设置依赖项.

例如,在我们的解决方案文件中,我们有这样的事情:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
EndProject
Run Code Online (Sandbox Code Playgroud)

请注意,没有指定依赖项.它需要更像这样,其中指定的其他GUID是ProjectA所依赖的项目的GUID.

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectA\ProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
    ProjectSection(ProjectDependencies) = postProject
        {EB576061-5081-4ED5-9146-1B20C893E51E} = {EB576061-5081-4ED5-9146-1B20C893E51E}
        {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40} = {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40}
        {03FAB21D-C077-499B-9B19-67971791D369} = {03FAB21D-C077-499B-9B19-67971791D369}
        {F5E0C7B8-36AD-46B0-A74D-9C48516E208A} = {F5E0C7B8-36AD-46B0-A74D-9C48516E208A}
    EndProjectSection
EndProject
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅此帖子.

  • 在沿着这条路线前尝试关于项目依赖性的答案(目前在下面),这样做要困难得多. (2认同)

Cod*_*shi 5

在我的情况下,其中一个项目没有建立,但是在错误中绝对没有提到它。经过几个小时的拉力和投下一些F炸弹后我终于仔细查看了输出,发现有一个错误:

在此处输入图片说明

就是这样。我将其修复,然后所有错误都消失了。但是我很好奇,所以我将代码改回了编译失败的代码。我进行了构建,现在出现了友好的构建错误。由于某种原因未显示该错误。不知道为什么


小智 5

在每个项目=> 属性屏幕中检查目标框架版本。如果它低于参考项目或文件中使用的值,则会出现错误,因为编译器不知道如何处理更高版本的框架。
根据您的描述,您有一个依赖框架 v4.0 作为目标。

一一更改依赖项目标框架,直到您的项目构建为止。

如果它是第 3 方的闭源依赖项,请要求他们提供 .net 3.5 目标。


没有解决方法。