使用WPF和代码合同找不到g.i.cs文件

时间:2009-09-30 06:23:07

标签: wpf visual-studio

我有一个WPF项目编译得很好。但是,当我启用代码合同时,我会收到很多错误,如下所示:

file 'C:\MyProject\obj\Debug\MyFile.g.i.cs' could not be found

有解决方法吗?

3 个答案:

答案 0 :(得分:1)

仅供参考...此错误已在最新版本的Code Contracts(v1.2.21023.14,10月22日发布)中修复。

答案 1 :(得分:0)

您可以更加具体地了解您的重复步骤吗?以.g.i.cs结尾的文件的重要性是它们是专门为在运行项目中启用智能感知而生成的文件。它们并不是构建过程的真正组成部分,并且可能不应该被代码合同使用。我不是任何代码合同专家,所以我在这一点上可能是错的。

答案 2 :(得分:0)

我在Code Contracts论坛上发布了一个repro并解决了这个问题。这是URL:

http://social.msdn.microsoft.com/Forums/en-US/codecontracts/thread/4f2af748-1db1-4175-abf0-fbcc82f177ee


简短的回答是,只要您在解决方案中有多个相互引用的项目,并且其中一个子项目是WPF控件库,就会发生错误。要解决此问题,您可以禁用父项目(引用其他项目的项目)的合同验证,也可以将后构建事件添加到违规子项目中以创建* Code Contracts重写器正在寻找的.gics文件。

例如,在子项目的根目录中创建一个空白文本文件,并将其命名为“Blank.txt”。然后将以下命令添加为该项目中的生成后事件:

copy "$(ProjectDir)Blank.txt" "$(ProjectDir)obj\$(Configuration)\GeneratedInternalTypeHelper.g.i.cs"

根据需要多次复制此行,每个丢失的文件一个。