****************** Visual Studio ****************** Add Igor Compiler step to Visual Studio project =============================================== You can add running Igor Compiler as a prebuild event to your Visual Studio (MSBuild) project. Perform the following steps: * Place igorc.exe somewhere to your Visual Studio solution folder. * In the project root folder create a cmd file called ``prebuild.exe`` with the following content: .. code-block:: batch @cd %~dp0 igorc.exe **your options** Use relative path to igorc.exe from your project folder. * Add *PreBuildEvent* with ``prebuild.cmd`` call to the end of your project (msbuild) file: .. code-block:: xml $(ProjectDir)prebuild.cmd * Add target generated files to your project. * Optionally add source Igor files to your project, so that ``prebuild.cmd`` is called when files are modified. Now every time the project is built, target files are regenerated. .. _vs_scripts: Use Visual Studio to edit extension scripts =========================================== It's convenient to use Visual Studio with *IntelliSense* to edit your extension scripts. To do so, perform the following steps: * In your C# scripts folder create *IgorScripts.csproj* file (the name is arbitrary) with the following content: .. code-block:: xml net472 igorc.exe * Edit HintPath to a valid relative path to *igorc.exe*. * Now just open the *csproj* file with Visual Studio 2017+ and edit your scripts with the full *IntelliSense* support. .. tip:: When editing extension scripts in Visual Studio you can get advantage of using Igor API context help, by putting XML documentation file ``igorc.xml`` to the same folder as referenced ``igorc.exe``. The stable version of ``igorc.xml`` can be downloaded here: https://github.com/igorlang/igor/releases/latest/download/igorc.xml . Debugging extension scripts --------------------------- You can use Visual Studio to debug your extensions. For this purpose, create the ``Properties\launchSettings.json`` file in your project directory with the following content: .. code-block:: json { "profiles": { "dump": { "commandName": "Executable", "executablePath": "$(TargetDir)\\igorc.exe", "commandLineArgs": "-lib $(TargetPath) -t TARGET_NAME -p $(ProjectDir) *.igor" } } } Using ``-lib`` option allows to run and debug the compiled dll. Adjust your ``TARGET_NAME`` and path to the source files (``-p`` option) and provide other command line arguments if needed. Now you can set breakpoints for your scripts in Visual Studio and hit them in debugging session.