我编写了一个AutoCAD插件,根据用户选择的表单项显示图像。调用显示图像的一个例子是
previewBox.Image = System.Drawing.Image.FromFile("Window Width.PNG");
但是,即使.PNG文件与我的.DLL文件位于同一目录中,我也会收到一条错误消息,指出无法找到该图像。我得到的完整错误文本如下。
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.
答案 0 :(得分:4)
这是因为AutoCAD的工作目录是AutoCAD文件夹(通常为C:\Program Files\Autodesk\<version>\
),而不是您的dll插件来自的文件夹。这种行为对于所有应用程序都是通用的 - 无论加载外部库,运行目录都保留在可执行应用程序启动的位置。
您需要绝对地或相对于该AutoCAD文件夹引用您的文件。但是,您可以通过Assembly.Location
获取DLL的完整路径
typeof(MyType).Assembly.Location
使用此代码,您可以使用以下代码访问所需文件:
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);