After a lot of time spent working on my IL editor and IL project, I finally have a workable version ready for you to try out, if you would like. The MSI file that is linked below, includes code for a project and an editor. The project has templates to create a class library, console application, and a windows form application, supports an automation model, and to make IL development easier, you can even import existing DLL or EXE assemblies into your project (it will be decompiled and the generated IL file will be imported into the project). You can also build your project and then debug the generated code. The language service will do colorization of the IL file, supports statement completion and parameter info for opcodes and keywords, will find TODO comments and add an entry to the task list, and referencing external assemblies is as easy as using the Add Reference dialog box – right click the document and choose Insert Assembly Reference.
- Visual Studio 2005 Beta 1
- You must have the VSIP Beta 1 SDK installed, without this the editor and project packages will refuse to load.
- The automation model for the project is not complete.
- Renaming a document that is open does not work correctly. You can properly rename them if the file is not open.
- If you open a file inside an IL project, close the project, then reopen it, the open file will not reopen.
- Parameter tips for all opcodes and keywords do not have descriptive text.
- Project and Project Item templates have some bugs. Specifically, there are no replacements done on the templates. For example the Windows Application template has the module name set to WindowsApplication1.exe. The assembly name for a console application is set to Project17. This is because I have not written wizards for generating projects yet.
- After running the installer to install, you need to run the command “devenv /setup” from the command prompt to make sure the project and editor are properly installed.
I also found a few bugs in Visual Studio that cause problems with the project:
- If you open a C#, VB, J#, etc. application then try to add a project to project reference in the C#, VB, or J# app to the IL project, it will fail to build. I am working with the VS project group to make sure this is fixed before VS final ships.
- Parts of the automation model for the IL project will throw a cast exception. This is because of a bug in the EnvDTE PIAs, and should be fixed at least before Visual Studio final ships.
Note that this version will time bomb Aug 1, causing any projects to not load and any IL files you open will appear as if you did not have the packages installed. The reason I did this is because I will be updating the code over time with bug fixes and I would like people to look at the latest code. The time bomb will gently nudge (OK, force) people to use the latest bits. Also, this version does not have source code included. I am not sure when this will be released, after all, this will be the headline sample included with the next version of our book, and we would like to present the code with the text of the book.
Remember that this will be just a sample. While I tried to make it as useable as I could, it is not as full-featured as C#, VB, C++, etc. and does not include features such as a WinForm designer, all the smart tag functionality, etc. This is a beta quality sample, and while I tried to find and fix as many bugs as I could find, there may be the occasional bug which could cause data loss; so use at your own risk. If you do find a bug, please post it here and I will try to fix it as soon as possible.
You can download the code from http://workspaces.gotdotnet.com/VisualIL. When running the installer, the installation key is all 1 values.