1

我已经开始测试 VS11 beta 来构建 Ocean 2011 插件。它似乎工作得很好,并且有足够的优势,我正在考虑将它用于日常工作。(当然,在 Schlumberger 推荐之前,我们不会使用 VS11 进行生产构建。)

但是,有一个阻塞问题:

依赖 InventorNet.dll 的项目无法构建,并显示以下消息:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1546,5):警告 MSB3270:正在构建的项目的处理器架构“MSIL”与参考“InventorNet”、“AMD64”。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便在项目和参考之间对齐处理器体系结构,或者依赖具有与项目的目标处理器体系结构匹配的处理器体系结构的参考。

CSC:致命错误 CS0008:从文件“c:\Program Files\Schlumberger\Petrel 2011\InventorNet.dll”读取元数据时出现意外错误——“未找到索引。”*

认为第一个警告是无害的,因为其他依赖项会发出类似的警告,但我无法通过错误消息(粗体)。两者都可能源自 MSBuild 使用的 .NET 4.5(也在测试版)中更严格的程序集验证。我们的项目面向 .NET 3.5。

有谁知道该错误是否可以通过某些设置或其他技巧来修复,或者我们是否需要来自 Schlumberger 的更新程序集?(谷歌搜索产生了一些与 VS2010 相关的类似案例,并表明程序集提供者确实需要重建程序集以纠正问题。)

或者,有人可以指出这个问题是否会在 Ocean 2012 中得到解决?

4

3 回答 3

2

我只是简单地用 OIV 9.0.0.0 测试你的 petre/ocean 2012 D9 快照版本(对于 2011 年,它是 8.1.2.2),它似乎工作正常(在 Visual Studio 2011 中通过了一些警告的构建,并且运行正常在海燕 2012 D9)。

邓锋

于 2012-03-12T08:02:41.020 回答
1

关于 VS11beta 中 Ocean 2012 的警告:如果您的解决方案具有“任何 CPU”目标并且基于 Petrel 64(因为 Inventor 的 DLL 依赖于 CPU),则可能是“CPU 不匹配”警告。如果您为项目选择 64 位 CPU 目标,则不会出现警告。亚历克斯

于 2012-03-12T09:07:39.833 回答
0

可以通过将以下字符串添加到 .csproj 文件来消除第一个警告:

<PlatformTarget Condition=" '$(PlatformTarget)' == '' ">x86</PlatformTarget>

我将它添加到节点内部,在节点之后

于 2012-06-06T11:50:23.887 回答