使用Visual Studio 11 Beta构建Ocean 2011插件-InventorNet.dll问题



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

然而,有一个阻塞问题:

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

C:\Windows\Microsoft.NET\Framework\v4.0.30119\Microsoft.Common.targets(1546,5):警告MSB3270:正在生成的项目"MSIL"的处理器体系结构与引用"InventorNet"AMD64"的处理器架构不匹配。这种不匹配可能会导致运行时失败。请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便使项目和引用之间的处理器体系结构保持一致,或者使用与项目目标处理器体系架构匹配的处理器体系架构来依赖引用

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

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

有人知道这个错误是否可以通过一些设置或其他技巧来修复,或者我们需要斯伦贝谢公司的更新程序集吗?(谷歌搜索产生了一些与VS2010有关的类似案例,并表明程序集提供商确实需要重建程序集来纠正问题。)

或者,有人能说明这个问题是否会在2012年海洋大会之前得到解决吗?

我只是简单地用OIV 9.0.0.0测试您的petre/ocean 2012 D9快照版本(对于2011,它是8.1.2.2),它似乎工作得很好(在visual studio 2011中通过了带有一些警告的构建,并在Petrel 2012 D9中运行OK)

邓峰

关于VS11beta中Ocean 2012的警告:如果您的解决方案具有"任意CPU"目标并基于Petrel 64之上,则可能是"CPU不匹配"警告(因为Inventor的DLL依赖于CPU)。如果您为项目选择64位CPU目标,则不会有任何警告。Alex

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

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

我在节点内部添加了它,在节点

之后

最新更新