• 错误备忘_Crystal Reporter_找不到类型或命名空间名称 "CrystalDecisions"


    本文内容

    • 不能引用 Crystal Reporter 的相关程序集
    • 错误分析
    • 解决方案

    不能引用 Crystal Reporter 的相关程序集

    最近重做了一次系统,因此,之前安装的 Crystal Reporter 被格掉了。重新装完系统,VS 和 Crystal Reporter,并且添加了现有的解决方案后,Crystal Reporter 的相关引用找不到了。如下图所示:

    Q2-1

    图 1 找不到类型或命名空间名称 "CrystalDecisions"

    其实,对于一般程序集,或是简单三方程序集来说,不是很难解决,删除再引用一次就行。但对于大一点的三方控件,往往没那么容易。至少要简单了解一下这个三方控件是如何设计的,建立的基础是什么。

    这样的问题,说起来不难,但头一次遇到时,往往花很多时间才解决。

    错误分析

    下图是正常情况的引用。但是当程序集没有找到或出问题后,会在前面出现一个“叹号”。

    Q2-2

    图 2 正常情况的引用

    于是,右键点击项目,选择“添加引用”,但是在 ".NET" 页完全看不到 Crystal Reporter 的相关引用。".NET" 页是 VS 在 GAC 能看到的所有程序集,看不到,意味着 Crystal Reporter 的程序集不在 GAC 里。这不大可能。

    在操作系统的“控制面板”里查看 .NET framework 配置,却能看到 Crystal Reporter 的所有引用。又看了 C:\WINDOWS\assembly,Crystal Reporter 的所有程序集也都有,但就在 。".NET" 页就是看不到。

    尝试把 CrystalDecisions.Web.dll 添加到工具箱。打算把 Crystal Reporter 控件拖到页面上,相关引用就会自动添加到项目。但不行。不但不行,连 Crystal Reporter 的版本都不对。之前,在 Web.config 文件的 "assembly" 节使用的 Crystal Reporter 相关程序集的版本是 10.5.3700,但是这么干后,却添加了另外的 10.0.3300 版本。

    再次查看 C:\WINDOWS\assembly 目录,发现 Crystal Reporter 的所有程序集都是 10.0.3300。那我之前用的 10.5.3700 版本哪去了?

    版本都不对,直接引用的话,就更不行。就算版本对,对于像 Crystal Reporter 这样的三方程序,可能性不大。程序集有太多依赖。

    但修复 Crystal Reporter 和 VS,可还是不行。(其实,解决方法就在 VS 里,只是之前没注意到。)

    解决方案

    当第三次安装 VS 时,发现选项页里有关于 Crystal Reporter 的选项,细看叫 "Crystal Reporter Basic for Visual Studio 2008",如下图所示。注意到其中的词 "Basic",意识到类似于为了某个功能提供的基础框架。于是,把它们都勾上,第一次初次安装没勾。第二次是修复安装,没机会勾。

    Q2-3

    图 3 VS 2008 选项页

    安装完成后,一切就正常了。

    事实证明,细节决定一切,有句话:“魔鬼的魅力在于细节。”平时多思考,多注意细节没坏处。

  • 相关阅读:
    python+selenium初学者常见问题处理
    pycharm的这些配置,你都知道吗
    巧用浏览器F12调试器定位系统前后端bug
    dsu + lca
    indeed2017校招在线编程题(网测)三
    rolling hash
    ac自动机
    indeed 第二次笔试题
    vmware以及schlumberger题解
    2017 google Round C APAC Test 题解
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2518705.html
Copyright © 2020-2023  润新知