C# Crystal报告代码契约冲突
我们有一个使用C#on.NET4和代码契约构建的解决方案。我们希望利用Crystal Reports 13,但遇到了一个重大问题 当我们尝试使用crystal reports时,会出现以下异常: 未解析程序集引用:BusinessObjects.Licensing.KeycodeDecoder,版本=13.0.2000.0,区域性=neutral,PublicKeyToken=692fbea5521e1304 当代码契约运行时检查被禁用(未选中)时,不会发生此异常;但是代码契约抱怨必须启用重写器。不幸的是,代码库中到处都是C# Crystal报告代码契约冲突,c#,.net-4.0,crystal-reports,code-contracts,C#,.net 4.0,Crystal Reports,Code Contracts,我们有一个使用C#on.NET4和代码契约构建的解决方案。我们希望利用Crystal Reports 13,但遇到了一个重大问题 当我们尝试使用crystal reports时,会出现以下异常: 未解析程序集引用:BusinessObjects.Licensing.KeycodeDecoder,版本=13.0.2000.0,区域性=neutral,PublicKeyToken=692fbea5521e1304 当代码契约运行时检查被禁用(未选中)时,不会发生此异常;但是代码契约抱怨必须启用重写器
Contract.Requires(bool)
调用,如果改为if-then-throws样式,那将是一场噩梦
还有其他人遇到过这种不兼容吗?如果是这样,他们是如何克服的
谢谢您是否尝试向ContractProperties添加一个额外的库路径,该路径指向您计算机上包含缺少dll的目录?重写器有时会比C#编译器追逐更多的引用,从而导致此问题浮出水面。您是否尝试向ContractProperties添加一个额外的库路径,该路径指向计算机上包含缺少dll的目录?重写器有时比C#编译器追逐更多的引用,导致这个问题浮出水面。不幸的是,我不相信所讨论的dll实际上包含在它们的运行时或SDK中。他们似乎从其他DLL中引用了它,但实际上并没有部署它。我们也已经停止使用crystal reports,所以更新版本的库可能已经解决了这个问题。我明白了,这是一个令人沮丧的问题。最后,您还可以将选项-IgnoreMataErrors添加到重写器选项中。如果缺少的程序集确实是一个良性错误,这应该可以让您通过重写器。不幸的是,我不相信所讨论的dll实际上包含在它们的运行时或SDK中。他们似乎从其他DLL中引用了它,但实际上并没有部署它。我们也已经停止使用crystal reports,所以更新版本的库可能已经解决了这个问题。我明白了,这是一个令人沮丧的问题。最后,您还可以将选项-IgnoreMataErrors添加到重写器选项中。如果丢失的程序集确实是一个良性错误,这应该可以让您通过重写器。