01-15-2008 08:42 AM
Published 25 April 07 04:46 AM
So you've written an ACT! add-on, and for whatever reason, it is no longer being loaded by ACT!. What do you do? There's several steps that are particularly useful in determining the cause and getting it working again.
1. Check the ACT! Log
Chances are, the add-on threw an exception, which was caught by ACT! and logged. The caught exception will have a full stack trace along with the exception, which should give you insight into what happened. There are several ways to check the log. You can simply run Logview.exe, which can be found in the ACT! install directory, or if you're XML adventurous, you can look at the raw file (ACTLOG.XML) located in the ACT!'s application data folder (note folder location varies per OS).
2. Use the .NET Framework Assembly Binding Log Viewer (Fuslogvw.exe)
When any assembly cannot be loaded by the .NET Common Language Runtime (CLR), entries can be logged and viewed using this tool (http://msdn2.microsoft.com/en-us/library/e74a18c4(vs.80).aspx). A common problem for an Add-on to stop working is that it itself cannot be loaded, or one of its dependent assemblies cannot be loaded, often because of version mismatch. Fuslogvw.exe is a very powerful tool which can provide what assembly version is attempted to be loaded and where, and what the failures were. This can often give you key information to resolve the problem at hand.
3. Re-Enable the Add-on
Ok, so you've found the issue, and fixed it. So why isn't it working? Any time ACT! encounters an unhandled exception when loading an add-on (either when loading the type or when calling the constructor), the assembly the add-on resides in will be marked as unsafe, and ACT! will skip loading it in subsequent runs. Also in the ACT! application data directory is a file named Dependentdll.xml. You'll want to check that file for your assembly name, and remove that entry.
I hope this helps out any of you add-on authors that happen to run into any load or initialization issues with your add-ons. Keep making great ACT! add-ons!
01-01-2009 04:32 AM
i am having some problem with loading plugin in ACT. here i m writing the complete scenario of my execution.
1. I have developed a class library in C#.NET using framework 2.0
2. I have implemented IPlugin interface methods and display messagebox in each method. and i have done complete exception handling in plugin class.
3. in plugin load method, i added some command bar buttons in Tool menu.
4. I made an installer using Null-Soft software, which place DLLs in "c:/Program Files/Act/Act for windows/Plugins/" path.
5. I run the plugin setup. It installed successfully. then, I run Act!, it display all message boxes that i have placed in Plugin Load method. and it showed the created button in Tool menu successfully without any single error.
6. I checked the "LogView.exe", it displayed no error. and i checked "Dependentdll.xml", my plugin Dlls names were written in this xml file, but my plugin was working fine.
7. then i un-installed the .NET framework 2.0 from my system.
8. after this, Act! didnt run.
9. then i re-install the .NET framework 2.0.
10. Now i run the Act! software. But this time Act! didnt load my plugin. i surprized. I checked the "LogView.exe" again, it displayed no error. my plugin Dlls names were still placed in "DependentDlls.xml" file. i tried to remove these entries from DependentDlls.xml, but Act! created these entries again.
11. then i un-installed and then re-installed my plugin. but it never loaded again.
12. i tried many ways but it didnt load my plugin. the only scenaria i found is that, un-install the Act! software and re-install it. then it will load my plugin.
But i couldnt find out the rout cause analysis of this plroblem that why my plugin didnt loaded on re-installing .net framework 2.0
one thing more.... i tried the same scenario not only with my plugin, but i tried this scenario with "SPEACT" plugin which is available at "http://www.swiftpage.com/plugins_download/SPEACT_6000.exe"
i m using ACT! 2009 version, but this problem occurs on each plugin.