# 开发环境 - 操作系统: Windows 11 (开发环境) - Navisworks 版本: Navisworks 2017 Manage 或 Simulate (需安装以获取 SDK) - 集成开发环境 (IDE): Microsoft Visual Studio 2017 或更高版本 (推荐 Visual Studio 2022) - .NET Framework: 目标.NET Framework 4.6 (或更高兼容版本,如 4.8) - 安装程序工具: WiX Toolset - 版本控制: Git (可选,但强烈推荐) - 确保在 Visual Studio 项目中正确引用 Navisworks 2017 SDK 中的程序集,并将它们的“复制本地”属性设置为 False,以避免在插件部署时出现问题 。   好的,在 Visual Studio 2022 中为 Navisworks 插件创建项目,您需要选择正确的项目模板并进行一些关键配置。 以下是详细的操作步骤: ## 1. 创建新项目 1. **打开 Visual Studio 2022。** 2. 在启动界面,选择 **“创建新项目”**。 3. 在“创建新项目”对话框中: - 在顶部的搜索框中输入 **"Class Library"** (类库)。 - 在结果列表中,选择 **“类库 (.NET Framework)”**。请务必选择 `.NET Framework` 版本,而不是 `.NET` 或 `.NET Standard`,因为 Navisworks 2017 插件是基于.NET Framework 的。 - 点击 **“下一步”**。 4. 在“配置新项目”对话框中: - **项目名称 (Project name):** 输入您的插件名称,例如 `NavisworksLogisticsPlugin`。这个名称很重要,因为它将用于插件的部署文件夹名称 [1]。 - **位置 (Location):** 选择一个您希望保存项目文件的本地文件夹。 - **解决方案名称 (Solution name):** 可以与项目名称相同,或者根据您的偏好设置。 - 点击 **“下一步”**。 5. 在“其他信息”对话框中: - **框架 (Framework):** 在下拉菜单中,选择 **“.NET Framework 4.6”**。这是 Navisworks 2017 API 所需的最低兼容版本。如果您的 Visual Studio 默认没有 4.6,可以选择 4.8,因为 4.8 兼容 4.6 及更早的 4.x 版本。 - 点击 **“创建”**。 现在,您已经创建了一个空的 C# 类库项目。 ## 2. 添加 Navisworks API 引用 接下来,您需要将 Navisworks API 的核心 DLL 文件添加到您的项目中。这些文件通常位于 Navisworks 2017 的安装目录下的 `api\` 文件夹中 [2, 1]。 1. 在 Visual Studio 的 **“解决方案资源管理器”** 中,右键点击您的项目(例如 `NavisworksLogisticsPlugin`)。 2. 选择 **“添加”** > **“项目引用...”** (Add > Project Reference...)。 3. 在“引用管理器”对话框中,选择左侧的 **“浏览”** (Browse)。 4. 点击右下角的 **“浏览...”** (Browse...) 按钮。 5. 导航到您的 Navisworks 2017 安装目录。通常路径是: `C:\Program Files\Autodesk\Navisworks Manage 2017\api\net\` (如果您安装的是 Manage 版本) 或 `C:\Program Files\Autodesk\Navisworks Simulate 2017\api\net\` (如果您安装的是 Simulate 版本) 6. 在该目录下,选择以下所有 DLL 文件并点击 **“添加”**: - `Autodesk.Navisworks.Api.dll` [1] - `Autodesk.Navisworks.ComApi.dll` [1] - `Autodesk.Navisworks.Interop.ComApi.dll` [1] - `Autodesk.Navisworks.Interop.ComApiAutomation.dll` [1] 7. 点击 **“确定”** 关闭“引用管理器”对话框。 ## 3. 配置引用属性 (重要步骤) 为了确保插件正确加载并避免冲突,您需要修改这些引用的一个属性: 1. 在 **“解决方案资源管理器”** 中,展开您的项目下的 **“引用”** (References) 节点。 2. 逐个选择您刚刚添加的 Navisworks DLL 引用(例如 `Autodesk.Navisworks.Api`)。 3. 在 Visual Studio 右下角的 **“属性”** (Properties) 窗口中,找到 **“复制本地” (Copy Local)** 属性。 4. 将其值设置为 **`False`**。 这样做是为了告诉 Visual Studio 在编译时不要将这些 Navisworks API DLL 复制到您的插件输出目录,因为 Navisworks 运行时已经提供了它们。 ## 4. 配置生成输出路径 (重要步骤) Navisworks 插件需要放置在特定的文件夹结构中才能被识别和加载 [3, 1]。 1. 在 **“解决方案资源管理器”** 中,右键点击您的项目(例如 `NavisworksLogisticsPlugin`)。 2. 选择 **“属性”** (Properties)。 3. 在项目属性页中,选择左侧的 **“生成”** (Build) 选项卡。 4. 在右侧的“输出”部分,找到 **“输出路径” (Output path)** 字段。 5. 您需要将此路径设置为 Navisworks 安装目录下的 `Plugins` 文件夹内的一个子文件夹,该子文件夹的名称必须与您的项目名称完全一致 [3, 1]。 - **首先,手动在 Navisworks 安装目录中创建这个文件夹。** 例如,如果您的 Navisworks 2017 安装在 `C:\Program Files\Autodesk\Navisworks Manage 2017\`,并且您的项目名称是 `NavisworksLogisticsPlugin`,那么您需要创建以下文件夹: `C:\Program Files\Autodesk\Navisworks Manage 2017\Plugins\NavisworksLogisticsPlugin\` - **然后,将“输出路径”设置为这个新创建的文件夹的完整路径。** 例如: `C:\Program Files\Autodesk\Navisworks Manage 2017\Plugins\NavisworksLogisticsPlugin\` [1] ## 5. 开始编写插件代码 现在您的项目已经配置完毕,您可以开始编写插件代码了。您的插件类需要继承自 `Autodesk.Navisworks.Api.Plugins.AddInPlugin` 或 `Autodesk.Navisworks.Api.Plugins.DockPanePlugin`,并添加相应的 `PluginAttribute` 和 `AddInPluginAttribute` 或 `DockPanePluginAttribute` [3]。 例如,一个简单的“Hello World”插件骨架可能看起来像这样: ```csharp using Autodesk.Navisworks.Api; using Autodesk.Navisworks.Api.Plugins; using System.Windows.Forms; // 用于MessageBox namespace NavisworksLogisticsPlugin { [AddInPlugin(AddInLocation.AddIn)] // 将插件显示在Navisworks的“附加模块”选项卡中 public class Main : AddInPlugin { public override int Execute(params string parameters) { MessageBox.Show("Hello from Navisworks Logistics Plugin!"); return 0; } } } ``` **重要提示:** - 将 `YOUR_DEVELOPER_ID` 替换为您自己的唯一开发者 ID。这通常是您的公司名称缩写或反向域名,以确保插件的唯一性。 - 编译项目后,Navisworks 启动时会自动加载位于其 `Plugins` 文件夹中的插件 [3, 1]。 通过遵循这些步骤,您应该能够成功地在 Visual Studio 2022 中为 Navisworks 2017 插件设置开发环境。 dotnet build NavisworksTransportPlugin.csproj --configuration Debug --verbosity normal dotnet build NavisworksTransportPlugin.csproj --verbosity normal