gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 17:03:48 25 4
gpt4 key购买 nike

我在 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");

.... 等等.....

然后如何使用 sPath变量来访问库及其命名空间和类。

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

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

最佳答案

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

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

  • 在你的项目的根文件夹中,应该有
    二进制文件/依赖项 文件夹,您将在其中存储无路径(要么未安装在您的工作站中,要么未安装在第三方中,例如
    iTextSharp、telerik) 程序集。
  • 您将仅从该项目的文件夹中引用所需的程序集。
  • 部署/发布时,请确保设置 复制本地选项设置为 .从 中选择组件引用文献 选项卡,然后导航到属性 - 您告诉 Visual Studio 将所有这些引用的程序集复制到 垃圾箱已发布/部署目录的目录。

  • 如果我使用“添加引用”从某个位置添加 .NET dll,那么在客户端机器上部署时路径是否应该完全相同? - 以上实践将消除这种可能性。

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

    关于c# - 从不同位置在 .NET 中添加相同的 dll 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23087238/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com