AutoCAD Plugin Can't Locate Resources

1.6k Views Asked by At

I have written an AutoCAD plugin that displays images based on what form item the user has selected. An example of an image being called to display would be

previewBox.Image = System.Drawing.Image.FromFile("Window Width.PNG");

However, even though the .PNG file is in the same directory as my .DLL file, I get an error saying the image cannot be located. The full error text I get is below.

Application does not support just-in-time (JIT) debugging. See the end of this message for details.

************** Exception Text **************
System.IO.FileNotFoundException: Window Height.PNG
   at System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
   at WindowsAndDoorsPlugin.WindowsDoors.heightBox_isClicked(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.TextBoxBase.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.TextBoxBase.WndProc(Message& m)
   at System.Windows.Forms.TextBox.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18444 built by: FX451RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Acdbmgd
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcdbMgd.DLL
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
AdApplicationFrame
    Assembly Version: 0.0.0.0
    Win32 Version: 4.0.19.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AdApplicationFrame.DLL
----------------------------------------
AdWindows
    Assembly Version: 4.0.24.0
    Win32 Version: 4.0.24.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AdWindows.DLL
----------------------------------------
PresentationFramework
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.dll
----------------------------------------
WindowsBase
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsBase/v4.0_4.0.0.0__31bf3856ad364e35/WindowsBase.dll
----------------------------------------
PresentationCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_32/PresentationCore/v4.0_4.0.0.0__31bf3856ad364e35/PresentationCore.dll
----------------------------------------
System.Xaml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xaml/v4.0_4.0.0.0__b77a5c561934e089/System.Xaml.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
PresentationFramework.Classic
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.classic/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.classic.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
accoremgd
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/accoremgd.DLL
----------------------------------------
Acmgd
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/Acmgd.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
AcWindows
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcWindows.DLL
----------------------------------------
AcCui
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcCui.DLL
----------------------------------------
PresentationFramework-SystemXml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXml/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXml.dll
----------------------------------------
PresentationFramework.Aero
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Aero/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Aero.dll
----------------------------------------
WindowsFormsIntegration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/WindowsFormsIntegration/v4.0_4.0.0.0__31bf3856ad364e35/WindowsFormsIntegration.dll
----------------------------------------
AcWindows.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcWindows.resources.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
PresentationUI
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationUI/v4.0_4.0.0.0__31bf3856ad364e35/PresentationUI.dll
----------------------------------------
System.Xml.Linq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll
----------------------------------------
PresentationFramework-SystemXmlLinq
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemXmlLinq/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemXmlLinq.dll
----------------------------------------
FeaturedAppsPlugin
    Assembly Version: 19.0.0.0
    Win32 Version: 19.0.55.0.0
    CodeBase: file:///C:/ProgramData/Autodesk/ApplicationPlugins/Autodesk%20FeaturedApps.bundle/Contents/Windows/2014/FeaturedAppsPlugin.dll
----------------------------------------
ContextualTabSelectorRules
    Assembly Version: 0.0.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcWindows.dll
----------------------------------------
PresentationFramework-SystemCore
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework-SystemCore/v4.0_4.0.0.0__b77a5c561934e089/PresentationFramework-SystemCore.dll
----------------------------------------
Microsoft.Expression.Interactions
    Assembly Version: 4.0.0.0
    Win32 Version: 2.0.20520.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/Microsoft.Expression.Interactions.DLL
----------------------------------------
ManagedMC3
    Assembly Version: 7.2.0.0
    Win32 Version: 7.2.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/ManagedMC3.DLL
----------------------------------------
UIAutomationTypes
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/UIAutomationTypes/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationTypes.dll
----------------------------------------
AcTaskDialogs
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcTaskDialogs.DLL
----------------------------------------
AcTaskDialogs.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcTaskDialogs.resources.DLL
----------------------------------------
AutoCAD CSharp plug-in4
    Assembly Version: 1.0.5421.29773
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Administrator/AppData/Roaming/Autodesk/ApplicationPlugins/Clearspan.bundle/Contents/Windows/ShowHideLayers.dll
----------------------------------------
WindowsAndDoorsPlugin
    Assembly Version: 1.0.5451.27174
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/Administrator/AppData/Roaming/Autodesk/ApplicationPlugins/Clearspan.bundle/Contents/Windows/WindowsDoorsTool.dll
----------------------------------------
AcAeNet.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcAeNet.resources.DLL
----------------------------------------
AcButterflyExt.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcButterflyExt.resources.DLL
----------------------------------------
AcCloudRender.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcCloudRender.resources.DLL
----------------------------------------
AcCustomize.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcCustomize.resources.DLL
----------------------------------------
AcDxWizard.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcDxWizard.resources.DLL
----------------------------------------
AcExportLayoutUI.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcExportLayoutUI.resources.DLL
----------------------------------------
AcInterfere.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcInterfere.resources.DLL
----------------------------------------
AcLayer.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcLayer.resources.DLL
----------------------------------------
AcLayerTools.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcLayerTools.resources.DLL
----------------------------------------
AcMrUi.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcMrUi.resources.DLL
----------------------------------------
AcMultiLineUi.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcMultiLineUi.resources.DLL
----------------------------------------
AcRecoverAll.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcRecoverAll.resources.DLL
----------------------------------------
AcScaleList.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcScaleList.resources.DLL
----------------------------------------
AcUnderlay.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcUnderlay.resources.DLL
----------------------------------------
AcViewTransitionsUi.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcViewTransitionsUi.resources.DLL
----------------------------------------
AdskConnectionPointMgd.resources
    Assembly Version: 1.0.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AdskConnectionPointMgd.resources.DLL
----------------------------------------
AcCalcUi.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcCalcUi.resources.DLL
----------------------------------------
AcLivePreviewContext
    Assembly Version: 0.0.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcWindows.dll
----------------------------------------
AcLayer
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcLayer.DLL
----------------------------------------
PresentationFramework.Luna
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/PresentationFramework.Luna/v4.0_4.0.0.0__31bf3856ad364e35/PresentationFramework.Luna.dll
----------------------------------------
AcMrUi
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcMrUI.DLL
----------------------------------------
FeaturedAppsPlugin.resources
    Assembly Version: 19.0.0.0
    Win32 Version: 19.0.55.0.0
    CodeBase: file:///C:/ProgramData/Autodesk/ApplicationPlugins/Autodesk%20FeaturedApps.bundle/Contents/Resources/en-US/FeaturedAppsPlugin.resources.dll
----------------------------------------
UIAutomationProvider
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/UIAutomationProvider/v4.0_4.0.0.0__31bf3856ad364e35/UIAutomationProvider.dll
----------------------------------------
AcCommandToolTips
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcCommandToolTips.DLL
----------------------------------------
AcCommandToolTips.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcCommandToolTips.resources.DLL
----------------------------------------
Connect.Client.AutoCAD
    Assembly Version: 3.1.2.0
    Win32 Version: 3.1.2.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/Connect.Client.AutoCAD.DLL
----------------------------------------
AcDialogToolTips
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/AcDialogToolTips.DLL
----------------------------------------
AcDialogToolTips.resources
    Assembly Version: 19.1.0.0
    Win32 Version: 19.1.18.0.0
    CodeBase: file:///C:/Program%20Files/Autodesk/AutoCAD%202014/en-US/AcDialogToolTips.resources.DLL
----------------------------------------

************** JIT Debugging **************
Application does not support Windows Forms just-in-time (JIT)
debugging. Contact the application author for more
information.
1

There are 1 best solutions below

0
On BEST ANSWER

This is because the working directory of AutoCAD is the AutoCAD folder (typically C:\Program Files\Autodesk\<version>\), not the folder your dll plugin comes from. This sort of behavior is common to all applications - regardless of loading external libraries, the running directory remains where the executable application started.

You need to reference your file either absolutely, or relative to that AutoCAD Folder. You can, however, get the full path to your DLL via Assembly.Location thusly

typeof(MyType).Assembly.Location

using this, you can get to the desired file using this code:

using System.IO;
...
var dllPath = typeof(MyType) // Where 'MyType' is a type defined in your assembly
    .Assembly.Location;
var folderPath = new FileInfo(dllPath).Directory.FullName;
var fullPath = Path.Combine(folderPath, "Window Width.PNG");

previewBox.Image = System.Drawing.Image.FromFile(fullPath);