【问题标题】:Build Error for x64x64 的构建错误
【发布时间】:2012-07-24 23:07:05
【问题描述】:

使用旧版本 (v3) 构建项目没有问题,其中只有一组 dll,并且项目目标设置为“任何 CPU”。它适用于 x86 和 x64 构建,并且在 Win32 和 Win64 机器上运行良好。

已下载并想试用最新的 Teechart 2012 版本(4.1.2012.7136) 现在 Steema 提供 x64 和 x86 dll,我想使用优化的 x64 dll

问题1:我的理解正确吗?为什么在较新的版本中有两个版本的 TeeChart dll?

构建测试 1:使用新的 x64 TeeChart dll 构建 x64 项目 将 dll 从文件夹 C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x64\ 复制到项目文件夹。这是因为我想用 x64 dll 构建

在构建 x64 构建时出现 2 种构建错误: 错误 1 ​​'无法加载文件或程序集 'TeeChart,版本 = 4.1.2012.7136,文化 = 中性,PublicKeyToken = 9c8126276c77bdb7' 或其依赖项之一。试图加载格式不正确的程序。'

错误2: '无法加载文件或程序集'TeeChart,版本 = 3.5.3225.32185,文化 = 中性,PublicKeyToken = 9c8126276c77bdb7' 或其依赖项之一。无效指针(HRESULT 异常:0x80004003 (E_POINTER))'

问题2: 我需要更新项目中的所有 licenses.licx 文件吗?我知道这些是在添加 TChart 时自动生成的?刚刚更新 TeeChart 库时如何处理?

问题 3: 为什么会有两种不同的错误?所有 licenses.licx 当前都有包含 Version=3.5.3225.32185 的文本。我尝试手动将所有 licenses.licx 文件更新到较新版本,但没有帮助。

构建测试 2:使用新的 x86 TeeChart dll 构建 x64 项目 将文件夹 C:\Program Files (x86)\Steema Software\Steema TeeChart for .NET 2012\net35\x86\ 中的 dll 复制到项目文件夹中。

一切都构建良好,运行良好

问题 4:如何在不更新项目中的 licenses.licx 文件的情况下构建良好?

【问题讨论】:

    标签: teechart


    【解决方案1】:

    问题1:我的理解正确吗?为什么有两个版本的 TeeChart dll 是否在较新的版本中?

    这就是将所有可能的环境组合的选项留给用户。

    构建测试 1:使用新的 x64 TeeChart dll 构建 x64 项目已复制 dll 来自文件夹 C:\Program Files (x86)\Steema Software\Steema .NET 2012\net35\x64\ 的 TeeChart 到项目文件夹。这是因为 我想用 x64 dll 构建

    在构建 x64 构建时出现 2 种构建错误:Error1 'Could not 加载文件或程序集 'TeeChart, Version=4.1.2012.7136, Culture=neutral, PublicKeyToken=9c8126276c77bdb7' 或其其中之一 依赖关系。试图加载一个不正确的程序 格式。'

    除了复制程序集之外,您是否更新了项目中的 TeeChart.dll 引用?您可以尝试将其删除并将其分配给 x64 程序集。

    Error2: '无法加载文件或程序集'TeeChart, 版本=3.5.3225.32185,文化=中性, PublicKeyToken=9c8126276c77bdb7' 或其依赖项之一。无效的 指针(HRESULT 异常:0x80004003 (E_POINTER))'

    您可能应该将 licenses.licx 更新到新版本或使用最小版本不可知的 licenses.licx,如教程 17 中所述。教程可以在 TeeChart 的程序组中找到。

    问题 2:我需要更新项目中的所有 licenses.licx 文件吗? ?我知道这些是在添加 TChart 时自动生成的?怎么做 我只是在更新 TeeChart 库时处理这种情况?

    我建议您使用之前回复中所述的无版本 licenses.licx。

    问题 3:为什么会出现两种不同的错误?所有许可证.licx 当前有包含 Version=3.5.3225.32185 的文本。我试过 手动将所有 licenses.licx 文件更新到较新的版本,但 没有帮助。

    可能是因为有2个问题:1、项目找不到设置的TeeChart引用。 2、发现的TeeChart程序集版本与licenses.licx设置不一致。

    构建测试 2:使用新的 x86 TeeChart dll 构建 x64 项目已复制 dll 来自文件夹 C:\Program Files (x86)\Steema Software\Steema .NET 2012\net35\x86\ 的 TeeChart 到项目文件夹。

    一切都构建良好,运行良好

    问题 4:如何在没有任何更新的情况下构建良好 项目中的 licenses.licx 文件?

    可能是因为项目 TeeChart.dll 引用尚未更新,仍指向 x86 TeeChart 版本。

    【讨论】:

      【解决方案2】:

      除了复制程序集之外,您是否更新了项目中的 TeeChart.dll 引用?您可以尝试将其删除并将其分配给 x64 程序集。

      我正在复制现有的 dll,那么为什么我会遇到项目中的引用问题。无论如何,我尝试删除引用并将它们添加回来只是为了它,但这并没有使错误消失。我最终在项目引用中添加了 x86 dll,并且当然更新了 licenses.licx 以指向较新的版本,并且它可以很好地构建 x64 构建。但是,为了对 x64 框进行全面优化,我将 x64 dll 复制到应用程序文件夹中。它运行良好。

      这解决了两个问题:

      1:Visual Studio 设计器需要 x86 dll,因此如果我们想使用设计器对 UI 进行任何更改,则不能在项目引用中引用 x64 dll。

      2:修复了如前所述的许可证编译器的构建错误。

      现在我在想错误'*无法加载文件或程序集'TeeChart,Version=4.1.2012.7136,Culture=neutral,PublicKeyToken=9c8126276c77bdb7'或其依赖项之一。尝试加载格式不正确的程序*”是真实的,因为它来自许可证编译器,就像设计器一样,它需要项目引用中的 x86 dll。

      你怎么看?

      【讨论】:

      • x86 程序集是使用设计器所必需的,但您还应该能够使用 x64 程序集编译项目以部署 64 位应用程序。我不认为这会造成异常,但在更改引用和组件时它也已修复。
      • 顺便说一句:恐怕你应该让你的 cmets 作为每个答案的 cmets 给出答案,而不是作为新答案。 StackOverflow 不能用作典型的标准论坛格式。我建议您阅读常见问题解答部分 (stackoverflow.com/faq)。
      【解决方案3】:

      问题1:我的理解正确吗?为什么在较新版本中有两个版本的 TeeChart dll? 这就是将所有可能的环境组合的选项留给用户。

      我了解灵活性。我试图得到答案的目的是在较新版本中拥有单独的 dll。 2008年它曾经只是一套dll。那为什么现在是x64和x86版本。我没有看到任何解释差异的帮助或发行说明。 x64 dll 是否在 x64 上运行时进行了优化?

      【讨论】:

      • 在此之前,64 位程序集有一个单独的 x64 安装程序。这些程序集是从相同的 TeeChart 源生成的,只是在 64 位模式下编译项目。
      猜你喜欢
      • 2014-02-28
      • 2021-02-23
      • 2012-12-30
      • 2012-12-20
      • 2021-12-29
      • 1970-01-01
      • 2018-12-23
      • 2012-05-19
      • 2020-04-04
      相关资源
      最近更新 更多