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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

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

  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

提问于
用户回答回答于

要调试AutoCAD Add-On代码,需要创建引用Autodesk CAD 2016 Sdk库的C#类库项目,并将代码封装在使用CommandMethodAttribute声明的公共方法上。使用CommandMethod声明的此方法,它是AutoCAD prompt命令和Add-On代码之间的触发器。

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项目包含到AutoCAD应用背景。

用户回答回答于

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

扫码关注云+社区

领取腾讯云代金券