我正在编写简单的 Windows 窗体应用程序,需要使用 MathCAD API,对 MathCAD 文件进行一些批处理。 编写了这个应用程序,但现在它使用 DLL 的默认路径
"using Ptc.MathcadPrime.Automation;"
上述 dll 属性中的路径在程序集中设置为:
C:\Program Files\PTC\Mathcad Prime 9.0.0.0\Ptc.MathcadPrime.Automation.dll
据我了解,此路径已硬编码到我的程序中,但是如果我将 MahtCAD 安装在不同的目录中或在安装在不同驱动器上的另一台计算机上使用程序会怎样?
我可以在
app.config
文件中添加此 DLL 的路径,以便在应用程序启动时进行检查吗?
我添加了配置文件,其中可以指定路径:
<configuration>
<appSettings>
<add key="mcadPathDLL" value="C:\Program Files\PTC\Mathcad Prime 9.0.0.0\Ptc.MathcadPrime.Automation.dll"/>
</appSettings>
</configuration>
我从应用程序配置中检索值,但在程序中的何处定义它,以便它知道从哪里获取 DLL?
public MainForm()
{
InitializeComponent();
var McadPath = System.Configuration.ConfigurationManager.AppSettings["mcadPathDLL"];
MessageBox.Show(McadPath);
}
检查是否允许重新分发 dll。
我无法判断这是否适用于 MathCAD,但对于某些 SDK,您可以在应用程序中包含并重新分发 .Net dll。例如,在将 dll 添加为引用之前将其复制到存储库。
只要应用程序安装在计算机上,无论安装在何处,这样的 .Net dll 都应该确保它可以加载其依赖项。