从不同位置在.NET中添加相同的dll引用

本文关键字:dll 添加 引用 NET 位置 | 更新日期: 2023-09-27 17:58:30

我添加了一个在C#代码中使用的.NET dll库"itextsharp"。dll可以存在于以下目录中:

C:'ProgramData'<Application Name>' or
C:'Users'<Username>'AppData'
C:'Windows'System32' or
C:'Windows'

我想知道如何编写一个代码,检查dll是否存在于上述任何位置,然后使用它。例如:

string sPath = "";
if(File.Exist(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "''<Application Name>"''itextsharp.dll"))
  sPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) + "''<Application Name>"''itextsharp.dll");
else if(File.Exist(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "''<Application Name>"''itextsharp.dll"))
  sPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "''<Application Name>"''itextsharp.dll");

等等…

以及如何使用CCD_ 1变量来访问库及其命名空间和类。

我希望这样做,因为该文件并不总是在特定的文件夹中,并且我不想将所有与代码相关的文件保留在主程序文件文件夹中:"C:'Program Files'<Application Name>'"如果该文件已经存在于上述任何位置,那么我更喜欢先使用它。那么,如果我使用"添加引用"添加.NET库,那么它是一个固定路径吗?我需要首先找到正确的路径,然后指示代码使用它并访问它的命名空间和类。

我的第二个问题是,如果我使用"添加引用"从一个位置添加.NET dll,那么当它部署在客户端的计算机上时,路径应该完全相同吗?例如,如果我的windows驱动器是C:,并且我使用路径"C:'Users'<Username>'AppData'itextsharp.dll",但如果客户端在D:驱动器中安装了windows,那么代码将从C驱动器还是D驱动器访问路径?以及如何以编程方式更改路径?

从不同位置在.NET中添加相同的dll引用

如果我使用"添加引用"添加.NET库,那么它是固定路径吗 -在项目中处理程序集/二进制文件时不涉及路径。

以下是您可以遵循的练习步骤,

  1. 在项目的根文件夹中,应该有二进制文件/依赖项文件夹,您将在其中存储无路径(它要么没有安装在您的工作环境中,要么像第三方一样iTextSharp、telerik)组件
  2. 您将仅引用此项目文件夹中所需的程序集。

  3. 部署/发布时,请确保将copy Local选项设置为True。从References选项卡中选择程序集,然后导航到属性-您正在告诉visual studio将所有这些引用的程序集复制到已发布/已部署目录的bin目录中。

如果我使用"添加引用"从某个位置添加.NET dll,那么当它部署在客户端的计算机上时,路径应该完全相同吗 -以上做法将消除此类可能性。

无论项目是安装还是web,其发布的副本都必须包含所有依赖项,所以我们称之为包。