问题标签 [petrel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 Ocean 为区域创建属性并在每个区域中设置值
我找不到如何为区域创建属性的方法。
ocean - 注册模块时 Slb.License 出错
我有一个引用 Slb.License 以获得 Ocean2010 许可的项目。我正在针对 Petrel 2010.1 进行构建。
在运行 >Petrel 2010.1 (2010.2.2) 的机器上安装插件后,我使用 registermodule.exe 注册我的模块。除引用 Slb.License 的许可证模块外,所有模块都正确注册。
RegisterModule.exe 给我一个错误:“无法加载指定的模块。原因:无法加载文件或程序集' Slb.License, Version=2009.1.4.32700, Culture=neutral, PublicKeyToken=05cb3974809 3345b' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)"
错误中的版本 2009.1.4.32700 是与我正在构建的 Petrel 2010.1 一起打包的 Slb.License 版本。Petrel 2010.2.2 打包的 Slb.License 版本为 2010.1.5.21635。
有什么想法吗 ?如果我手动将我的许可证模块添加到 Petrel.exe.config,我的插件会正确加载并正常工作。我有问题的 RegisterModule.exe。
谢谢。
编辑
这在以前的版本中有效,但不确定具体如何。
ocean - 部署相互交互的插件
我们希望实现通过在共享程序集中声明的接口进行交互的插件。从技术上讲,几个插件将使用“主”插件注册实体(在集成期间),而后者又会使用这些实体(在 Petrel 会话期间)。
由于每个插件通常都是商店中的不同产品,因此它们需要由不同的 PIP 安装。
插件将向后兼容共享程序集。
是否可以使用 PIP 安装程序来实现这一点 - 以及如何实现?
ocean - 域对象“已更改”事件多次触发?
我有一个自定义窗口来显示输入树中的各种对象。一旦在输入树上检查了一个对象并显示在窗口中,我就订阅了该对象的“已更改”事件。我绝对确定我没有多次订阅该活动。我看到的问题是当我对对象进行更改(例如颜色)时,事件会触发 3 次。
伪代码:
编辑:
我注意到只打开设置并单击“确定”而不更改任何内容会导致 3 个事件被触发。所以现在我认为它实际上与改变颜色无关。
我也试过检查DomainObjectChangeEventArgs PropertyNames
属性,但总是空的。
visual-studio-2012 - 使用 Visual Studio 11 Beta 构建 Ocean 2011 插件 - InventorNet.dll 问题
我已经开始测试 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 中得到解决?
ocean - 重构/重命名 Ocean Workstep 派生类
似乎一旦将 Ocean Workstep 派生类发布到生产环境(并被客户端使用),它的名称、命名空间和程序集名称就会被有效地锁定以供将来更新(以确保向后兼容性)。
保存 Petrel 项目时,工作步骤引用将保存为二进制文件 Classes.ptd 中的完整类型名称(命名空间、类、强程序集名称)。在加载过程中,如果无法解析确切的类型名称(程序集版本似乎被忽略),则工作步骤在工作流编辑器中显示为“工作步骤不可用”。
在我们遇到的其他二进制序列化实例中,Petrel 使用已SerializationBinder
注册的PetrelSystem.ProjectSerializationService
- 对于 Workstep 实例并非如此。
有没有其他方法可以促进 Workstep 类/命名空间/程序集重命名?
为什么这种行为的记录如此糟糕(如果有的话)?我们是不是误会了什么?
wix - 用于部署 Petrel 插件的 Windows Installer XML (WiX) 模板或指南?
是否有任何模板或指南可用于创建用于部署 Petrel 插件的 Windows Installer XML (WiX) 项目?
WiX 没有被选为旧 *.vdproj/MSI 推荐的自然继承者有什么原因吗?
有没有人尝试过用于 Petrel 插件的 WiX?我有兴趣交流想法和经验。我是 WiX 的新手,很难上手。
(题外话:“新”PIP 范式精简而简单,但不适合企业使用,客户希望能够重新打包 MSI 以通过例如组策略促进大规模部署。我将发布另一个这个问题。)
ocean - 通过例如组策略大规模部署 PIP?
关于如何使用例如组策略促进 Petrel PIP 文件(插件包)的大规模部署,是否有任何建议?
包内容(插件文件)很简单,但用户特定的 PluginManagerSettings.xml 文件需要小心处理。对于希望能够为此目的自定义和重新打包 MSI 文件的客户来说,这个概念不太适合。
斯伦贝谢谨慎的做法是提供该领域的一些文档和建议的最佳实践。如果文档存在,我深表歉意,并希望得到指点。
ocean - 如何访问域对象统计选项卡中的属性?
访问支柱网格和视野的统计选项卡中的值对我很有帮助。我可以自己计算大部分,但如果这些属性存在于某个地方,如果我可以访问它们会容易得多。
c# - 如何通过 SeismicLine2D 中的 HorizonInterpretation2D 获得给定点的值(幅度)?
输入参数是 HorizonInterpretation2D 和 SeismicLine2D。通过选择地平线,海燕显示如图所示的值(红色)。要从代码中找到这个值,我需要获取样本的编号(蓝色)。怎样才能得到样本的数量?
截图解决方案[全尺寸]: