top of page
Search
soratwit

Visual Studio Debug Dll From Other Solution



To debug an external DLL, a calling project must be able to find the DLL, its .pdb file, and any other files the DLL requires. You can create a custom build task to copy these files to your \Debug output folder, or you can copy the files there manually.


To debug a DLL, you can start debugging from the calling app, or debug from the DLL project by specifying its calling app. You can also use the debugger Immediate window to evaluate DLL functions or methods at design time, without using a calling app.




Visual Studio Debug Dll From Other Solution



You can write a calling app for a DLL in managed or native code. If your native app calls a managed DLL and you want to debug both, you can enable both the managed and native debuggers in the project properties. The exact process depends on whether you want to start debugging from the DLL project or the calling app project. For more information, see How to: Debug in mixed mode.


I received a very friendly suggestion fromJohn Morse ofCorTek, Inc topublish his solution for reloading a Revit add-in into Revit without having to shut down and restart Revit each time.This can greatly speed up debugging iterations.In Revit 2008, it was possible to use the Visual Studio 'Edit and Continue' feature to achieve the same thing, but this functionality has been unavailable for Revit plug-ins for some time now, as we already noted a couple of times, for instance in comments fromJamie andEd Pitt(url),who also wrote about this topic in his ownblog.There only official work-around that has been suggested for Revit 2009 is to code and debug in VSTA, which allows editing and re-executing code without restarting, and then port to your external command or other plug-in API application.Another partial work-around that I use sometimes is to run Revit inside of the Visual Studio debugger with my project opened, like normal.If I really want to edit some of the source files and continue debugging at the same time, I open the same project once again in another instance of Visual Studio and perform the edits there.However, you must not save the edits immediately, or the first Visual Studio instance will notice that and say that it cannot continue debugging without recompilation.As alsomentioned,the Revit development team have looked at this issue and know how important it is for developers.It is scheduled to be fixed, but nobody can say exactly when the fix will happen.Guy Robinson presented asolution to this problem last June using the VSTA wrappers to reload a plug-in dynamically.Please be aware that this solution will almost certainly stop working in some future release of Revit.Now here is John's new solution to this problem:i came up with a solution that might be beneficial to people that are building/debugging an Add-In for Revit.i found that when testing/debugging an Add-In, you have to launch and close Revit each time you run your app.that's a pain.i came up with a way to dynamically load an app/dll to where you can leave Revit open.i have a zip of two VS solutions that show this example.one builds the initial DLL (which is loaded by Revit) and the bridge DLL (which is called by the initial DLL and is used for plugging/reading in external assemblies/dll's). the othersolution is the main form application that gets called/plugged in through the bridge.here is a RAR filereload_addin.rar containing the entire solution.it includes a README file that explains everything.here is what it says:


A quick google search will show a range of complex solutions to this problem. In this article I will show you two relatively simple solutions to integrated debugging: "munging" project files and using source & symbol serving.


Munging project files involves temporarily incorporating the code from the library project into the application you intend to debug. This solution is especially useful for situations where you want to write or edit the library code.


In the Otter solution, Inedo.ExecutionEngine was installed in three different projects, so I right clicked on my Solution, then Manage NuGet Packages, selected the library, and uninstalled it from the projects.


And that's that! Inedo.ExecutinEngine can just be debugged and edited like all other projects on my solution! Note that you won't be able to commit source control changes to the munged library in the same instance of Visual Studio. But you can always commit your library changes later.


Also known as PDB files, they essentially map compiled code (.dll and .exe files) to original source code files (.cs files). This is what visual studio uses behind the scenes for integrated debugging.


We recommend munging project files, but using embedded symbol packages is fine as well, especially if your debugging into library code. ProGet supports these solutions so your developers can debug NuGet packages as painless as possible.


In order to debug a .dll file, you must have the corresponding .pdb filefrom the exact same build. Visual Studio correlates the two files using acombination of the file name and a matching GUID stored in the .dll and.pdb file that gets regenerated for each build.(Source)


But more importantly, you should also have a PDB file (aka symbol file). The generated DLL actually references this PDB file so that applications like Visual Studio can connect assembly from the DLL to the source code while debugging.


When I build the resulting solution with DebugGame Editor as build target, it results in the following dll: Binaries/Win64/UE4Editor-MyGame-Win64-DebugGame.dll. When I start debugging though, from Visual Studio with my game set as StartUp project, the editor boots without issue but it does not link to the above dll but looks for Binaries/Win64/UE4Editor-MyGame.dll instead.


Crypto++ 5.6.4 uses a Visual Studio 2010 solution and project files by default. If you want or need VS2005, then you should unzip vs2005.zip in place. You can also delete the various *.vcxproj and *.filter files from VS2010.


Crypto++ 5.6.3 uses a Visual Studio 2005 solution and project files by default. If you want or need VS2010, then you should unzip vs2010.zip in place. You can also delete the various *.vcproj files from VS2005.


If your code is in debug mode and the directory path is correct then there can be a chance that due to HTML caching it's not working. Your breakpoint will hit the first time after that will retrieve data from the cache.


Solid framework for deep customization of Microsoft Office. Use solution templates, visual designers and components to develop version-neutral, secure and easy deployable extensions for all Office versions.


This technology is now available for our custom development services only. This visual toolkit allows creating secure, managed, isolated, deployable and version-neutral plug-ins for Outlook Express and Windows Mail. It provides powerful solution templates, Outlook Express - specific components, visual designers and wizards for advanced customization of Outlook Express menus, toolbars, panes and regions.


When writing the code for this blog, I use a test project to be able to easily run different snippets of test code. To run my test case that calls the WCF service I first have to launch the service project. From the context menu of the project, choose debug. That should bring up a small popup from the task bar. Once the Wcf service is hosted, the test cases can be run as usual.


An error similar to the one above is the Could not load file or assembly 'assembly' or one of its dependencies. The system cannot find the file specified. error. This also means that the program is trying to load an assembly that could not be found. The error can be re-created by creating a program that uses another assembly. Build the program, remove the references assembly (the .dll file) from the bin\Debug folder and run the program. In this case, the program fails during startup:


Some games or applications already supply Harmony from either a loader or another mod. While this seems easier, it requires that the version of Harmony you compile against is the same as the one available at runtime or else your code will not run (missing dependency). It also ties the release cycle of that solution to your. Harmony can co-exist in multiple versions with itself so it is totally fine that each user packs their own 0Harmony.dll with their mod.


You do have to remember to switch back to Debug mode after doing your "production compile." One of the other things that the Debug mode does is generate a .pdb file that supports debugging (among other things, it provides the relationship between your lines of source code and your compiled code). If you don't keep regenerating that file as you make changes to your source code, your debugging sessions will get decidedly weird.


A common problem is that the NuGet folder is not yet ready (e.g. not restored) when opening the solution, but TechTalk.SpecFlow.dll in located in the bin\Debug folder of the project. In this case, Visual Studio may load the assembly from the bin\Debug folder instead of waiting for the NuGet folder to be properly restored. Once this has happened, Visual Studio remembers that it loaded the assembly from bin\Debug, so reopening the solution may not solve this issue. The best way to fix this issue is as follows:


It seems that VS2015 handles solution-level NuGet packages differently (those registered in the .nuget\packages.config file of the solution). As a result, solution-level NuGet packages must be listed in the projects that use them, otherwise Test Explorer cannot recognise the test runner. 2ff7e9595c


1 view0 comments

Recent Posts

See All

Comments


bottom of page