【问题标题】:AutoCad .net project using Visual Studio Code使用 Visual Studio Code 的 AutoCad .net 项目
【发布时间】:2020-06-27 23:40:18
【问题描述】:

我想知道是否可以使用 VS Code 设置和调试 vb.net/C#.net AutoCAD 项目?对不起,如果这是一个愚蠢的问题,但我在这方面没有丰富的经验。到目前为止,我已经能够按照教程,使用 VS 社区设置和开发项目,但找不到任何关于如何使用 VS Code 进行操作的指导。提前致谢

【问题讨论】:

  • Visual Studio Code 不是 Visual Studio,它完全不同。您不能使用为一个人制作的教程来学习如何使用另一个人。有很多关于 Visual Studio Code 的教程。如果你用谷歌搜索visual studio code debugging,第一个结果应该是Debugging in Visual Studio Code
  • 您的意思是要创建一个测试台吗?
  • 让我们反过来问“为什么不呢?”你做了什么,有什么问题?据我所知,也许我错了这应该是可能的。
  • @PanagiotisKanavos,感谢您的分析。我可以看到这两个是完全不同的软件,所以我不能使用一个教程来与另一个一起工作。这实际上是我在这里提出问题的原因。不幸的是,根据我目前的知识,我无法为这个练习找到太多有用的信息。
  • @jdweng 感谢您的回答,我相信我还不够清楚。我希望能够构建/编译项目以获取可以加载到 Autocad 并使用代码中定义的函数的 .dll 文件

标签: c# vb.net visual-studio-code autocad autocad-scripts


【解决方案1】:

让它与 vscode 和 Acad2021 一起使用。该示例适用于以下设置:

为了使用完整的 .net 框架进行调试,我关注了this guide

  1. 使用以下命令创建一个新项目:dotnet new classlib

  2. 将您的 csproj 文件更改为(注意:对于不同的 AutoCAD 版本,将需要不同版本的 nuget 包):

    <Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
        <PropertyGroup>
            <TargetFramework>net48</TargetFramework>
            <RootNamespace>ProjectName</RootNamespace>
            <PlatformTarget>x64</PlatformTarget>
            <DebugType>portable</DebugType>
            <UseWindowsForms>true</UseWindowsForms>
        </PropertyGroup>
        <ItemGroup>
            <PackageReference Include="AutoCAD.NET" Version="24.0.0"></PackageReference>
            <PackageReference Include="AutoCADCommands" Version="2020.0.0"></PackageReference>
        </ItemGroup>
    </Project>
    
  3. 将您的 launch.json 设置为:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": ".NET Core Attach",
                "type": "clr",
                "request": "attach",
                "processId": "${command:pickProcess}"
            },
        ]
    }
    
  4. 将 Class1.cs 文件更改为:

    using Autodesk.AutoCAD.ApplicationServices;
    using Autodesk.AutoCAD.EditorInput;
    using Autodesk.AutoCAD.Runtime;
    
    namespace AU.KO_WT_TestPlugin
    {
        public class Initialization : IExtensionApplication
        {
            [Autodesk.AutoCAD.Runtime.CommandMethod("MyFirstCommand")]
            public void cmdMyFirst()
            {
                Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("\nI have created my first command.");
            }
            void IExtensionApplication.Initialize()
            {
            }
    
            void IExtensionApplication.Terminate()
            {
            }
        }
    }
    
  5. 运行命令:dotnet build

  6. 打开AutoCAD

  7. 在 autocad 中运行 netload 命令并在 PathToProject/bin/debug/net48/ProjectName.dll 下加载新生成的 dll

  8. 回到vscode按F5开始调试

  9. 选择 acad.exe 进程

  10. 在你的 C# 代码中设置断点

  11. 在 AutoCAD 中调用命令 MyFirstCommand

  12. 调试

注意事项:

  • 由于更改代码并使用 dotnet build 重新编译后无法在 AutoCAD 中卸载 .net 程序集,因此需要重新启动 AutoCAD 并通过网络加载新程序集
  • 应该可以创建一个启动 AutoCAD 并通过脚本网络加载程序集的任务。我还没有时间探索这种可能性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2023-03-09
    • 2018-10-16
    • 1970-01-01
    • 2020-07-23
    • 2010-10-14
    • 1970-01-01
    相关资源
    最近更新 更多