Please consult the bug database for issues within Visual D. Some irritating behaveour is not caused by Visual D - these are listed here:
Visual Studio Express
Visual D does not work with any of the Express version of Visual Studio. These editions do not support loading third party extensions and add-ins.
A free alternative are the integrated Visual Studio Shell distributions. The shells are identical with the Visual Studio IDE, but stripped of any language support. It still contains the native debugger that can be used to debug D applications. Please see the installation page for download links.
Unfortunately, the Visual Studio Shell is missing one file, that is needed for the conversion of the debug information by cv2pdb. This is msobj80.dll for VS2008 and msobj100.dll for VS2010 and must be extracted from a standard installation, the Visual C Express edition or the Windows SDK. You might also find it installed by other Microsoft products.
In November 2014 Microsoft released Visual Studio Community 2013, a version similar to Visual Studio Professional, but free for most users unless working in larger companies. Visual D integrates just as well as with the commercial versions.
No parameter tool tips when running alongside Visual Assist
Visual Assist is an extension to Visual Studio that adds a lot of editing functionality to most languages supported by VS, but not D. Unfortunately it interferes with Visual D. A known effect is that parameter info tool tips don't work in Visual D while Visual Assist is active in VS2005 or VS2008 (reported to not happen in VS2010). There are several work-arounds for this:
- disable Visual Assist while programming in D
- assign your favorite keyboard shortcut to the command "VisualD.!ParameterInfo".
- add the following Visual Studio macro
Sub ParameterInfo() If Not ActiveDocument Is Nothing Then If ActiveDocument.Language = "D" Then DTE.ExecuteCommand("VisualD.ParameterInfo") Else DTE.ExecuteCommand("Edit.ParameterInfo") End If End If End Suband assign the standard !ParameterInfo shortcut (Ctrl-Shift-Space) to this function.
Process MsMpEng.exe eats a lot of CPU
The process MsMpEng.exe is part of the Windows Defender anti virus protection system. It seems that it monitors inter-process communication, if it is configured to "real-time protect" your system, but doing so takes noticeable CPU performance. If Visual D is configured to parse or semantically analyze the source code, it delegates this to a separate process vdserver.exe/ DParserCOMServer.exe. This requires considerable data transfer between processes.
As a result, Windows Defender can harm performance of Visual D. To avoid this, add the Visual Studio process devenv.exe to the list of Excluded Processes in the settings of Windows Defender.
Import libraries from C/C++ projects
A Visual C/C++ DLL project reports two outputs to dependent projects: the DLL and the import library.
Unfortunately, the import library reported still contains unexpanded macros and the current working directory prepended instead of the project directory. The actual replacements are not accessible to Visual D, so it assumes the import library to be placed along-side the DLL.
If the C++ DLL project is converted to a static library project, the import library setting is kept, though unaccessible from the configuration page. The import library is falsely reported as an output. To mitigate this problem, Visual D ignores the import library if the main output is also a library.