我的课程库有什么问题?“致命的执行引擎错误”

What's wrong with my Class Library? 'Fatal Execution Engine Error'

提问人:PAPIWARBUX 提问时间:6/19/2023 最后编辑:Brian Tompsett - 汤莱恩PAPIWARBUX 更新时间:7/4/2023 访问量:99

问:

我正在尝试使Navisworks插件管理,它将使用前缀或后缀重命名一批选定的冲突。我在Visual Studio上运行它。

using Autodesk.Navisworks.Api;
using Autodesk.Navisworks.Api.Clash;

namespace ClashTestNameModifier
{
    class Program
    {
        static void Main(string[] args)
        {
            // Open the Navisworks document
            string modelPath = @"C:\path\to\your\model.nwd";
            Autodesk.Navisworks.Api.Application app = new Autodesk.Navisworks.Api.Application();
            Autodesk.Navisworks.Api.Document doc = app.OpenFile(modelPath);

            // Get the selected clash tests
            Autodesk.Navisworks.Api.Clash.TestsData clashTestsData = doc.GetClash().TestsData;
            SavedItemCollection selectedTests = clashTestsData.Tests.Value.GetSelectedItems();

            if (selectedTests.Count == 0)
            {
                System.Console.WriteLine("No clash tests selected.");
                return;
            }

            // Modify the clash test names
            string prefix = "New Prefix ";
            string suffix = " - Suffix";

            foreach (SavedItem testItem in selectedTests)
            {
                ClashTest test = clashTestsData.TestsDataArray[testItem.Index];
                test.DisplayName = prefix + test.DisplayName + suffix;
            }

            // Save the modified document
            doc.SaveFile(modelPath);

            // Close the document
            doc.Close();

            // Dispose of the application
            app.Dispose();

            System.Console.WriteLine("Clash test names modified successfully!");
        }
    }
}

当我运行程序时,出现以下错误。

在此处输入图像描述

IMAGE 2

C# 类库 autodesk autodesk-navisworks

评论

1赞 David 6/19/2023
您正在显示(图片)多条错误消息。是否有一条您不清楚的特定错误消息?请更新问题以指示该特定错误消息、它引用的代码行以及您对该错误的要求。
0赞 Ralf 6/19/2023
这是编译器错误,而不是运行时错误。所以你没有运行程序,它在编译时已经失败了。首先,看起来您缺少对正在使用的“Autodesk.Navisworks”内容的引用。仅仅在文件的开头放置一个 using 语句是不够的,您必须引用所需的程序集。
0赞 PAPIWARBUX 6/20/2023
大卫,我不确定我是否收到第一个错误,因为它无法引用Autodesk.Navisworks.Api或因为语法错误。拉尔夫,我确实引用了“Autodesk.Navisworks dll文件,如解决方案资源管理器所示。
0赞 David 6/20/2023
@PAPIWARBUX:在引用库时,您有什么迹象表明存在语法错误或问题?也许它引用了不同版本的库?“第一个错误”只是告诉您没有接受 0 个参数的构造函数。显示的代码期望存在这样的构造函数。您能否指出此类构造函数存在于任何文档中的哪个位置?Autodesk.Navisworks.Api.ApplicationAutodesk.Navisworks.Api.Application
1赞 Hans Passant 6/20/2023
编写的代码似乎基于旧的 COM 自动化 api。然而,Autodesk创建了一个更友好的.NET包装器,不幸的是,它使用了完全相同的命名空间和类名。错误消息看起来与该新 API 一致。此处提供开发人员指南

答: 暂无答案