一旦使用Autodesk库中的数据类型,C#中的控制台应用程序就无法执行

时间:2018-01-26 20:37:34

标签: c# console-application autocad autocad-plugin

我正在用C#开发一些AutoCAD附加组件,我希望首先在控制台应用程序中工作/调试我的类,直到我准备好在AutoCAD中实现这些功能。 / dot网络库无法卸载,每次修改代码时都需要重新启动/重新加载acad / 有趣的是,我发现只要我声​​明一个使用autocad数据类型的变量,我的控制台应用程序拒绝运行,并且我提供了一个"应用程序处于中断模式"视觉工作室的屏幕。例如,此代码不会运行:

  using System;
  using Autodesk.AutoCAD.Geometry;
  namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hi");
            Point2d p;            
            Console.ReadKey();
        }
    }
}

尝试使用此参考Autodesk C3D 2016 dll库。有没有人解释这里发生了什么和/或任何变通方法? thnks

2 个答案:

答案 0 :(得分:1)

AutoCAD .NET API仅设计为在进程中运行。 AutoCAD .NET库只能用于构建必须在AutoCAD中加载才能执行的插件(DLL)。

答案 1 :(得分:0)

要调试AutoCAD附加代码,您需要创建一个引用Autodesk CAD 2016 Sdk库的C#类库项目,并将代码封装在用CommandMethodAttribute声明的公共方法上。使用CommandMethod声明的此方法后,它将成为AutoCAD提示命令和附加代码之间的触发器。

public class AcadCommands
{
    [CommandMethod("TriggerCmd")]
    public void TriggerCommand
    {
        Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
        ed.WriteMessage("Hi");
        Point2d p;
    }
}

注意:在Visual Studio项目属性中,您需要进行配置以启动指向acad.exe的调试,并且在AutoCAD应用程序启动时,打开一些DWG并提示"NETLOAD"命令以包含可调试的DLL,您的VS Project到AutoCAD Application上下文。 enter image description here