【问题标题】:Solution fails to build w/ missing auto-generated .g.cs file for the first time, succeeds on second build解决方案第一次无法构建缺少自动生成的 .g.cs 文件,第二次构建成功
【发布时间】:2016-12-05 08:46:29
【问题描述】:

我正在使用 Visual Studio 2015(更新 3)构建一个 WPF 应用程序,而且——至少到现在为止,我不确定这种情况持续了多久——每次我进行更改和编译时,我会得到一个错误的构建失败

6>CSC:错误 CS2001:找不到源文件“C:[...]\Obj\Debug\AnyCPU\GeneratedInternalTypeHelper.g.cs”。`

不过,如果我只是构建第二次,它就可以正常工作。

这对我来说就像是依赖于之后生成的另一个文件或类似的东西,但我无法找出它是什么,谷歌搜索也没有得到任何东西,也没有首先在我的项目中搜索这个文件的用途(名称暗示了它的用途,但我不知道它的具体用途)。

也可能是(组策略强制)反病毒对文件或其依赖项持有独占锁定的时间过长,VS 绊倒了,我想我记得这样的问题在我的上一份工作中,但我不确定情况是否如此(我不能简单地禁用扫描仪进行检查,它已完全锁定,我不想违反公司政策试图规避它)。

有什么想法吗?这并不重要,因为它很容易解决,但这很烦人,我真的不想最后像这样签入项目。

【问题讨论】:

  • 您的项目或个人资料是否在网络共享上?
  • @toadflakz 不,这都是本地的。在 C 上:偶数,路径既不包含任何类型的链接(符号、目录连接)也不包含空格。

标签: c# wpf auto-generate build-error


【解决方案1】:

我遇到了同样的问题,我找到了它发生的原因(就我而言)。

我们解决方案的每个项目都有相同的输出文件夹。 GeneratedInternalTypeHelper.g.cs 文件是在每个项目的相同位置生成的。 计算了构建顺序/依赖关系,Visual Studio 发现某些项目可以并行构建。

在“工具”>“选项”>“项目和解决方案”>“构建和运行”中,您可以找到“最大并行项目构建数”选项。

从 8(在我的情况下)更改为 1 后,不会同时生成更多文件 :) 编译慢一点,但确实比多次编译更不烦人... \o/

【讨论】:

  • 在引用同名 DLL 的非 WPF 项目中遇到过这种情况。很好的收获。
  • 我无法检查这是否是问题所在——我什至不再在那家公司工作了——但这看起来是一个很好的提示。 因为我无法检查这是否是我的情况的根本问题,但我很犹豫将其标记为答案。这些情况下的常见做法是什么?
  • 我不知道... @Uwe 你呢?顺便说一句,标题中有错字:解决方案:)
  • @JohannStudanski :我认为您可以接受两种解决方案之一,并发构建是错误消息的来源。
【解决方案2】:

另一种解决方案是在解决方案中为您不想并行构建的项目添加项目依赖项。

这样,您可以为其他项目保留并行项目构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-03
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多