gpt4 book ai didi

c# - 让 C# 识别 Visual Studio 之外的 dll

转载 作者:行者123 更新时间:2023-11-30 21:06:22 25 4
gpt4 key购买 nike

在我开始从事这项工作的几年前,另一位已离职的开发人员使用 HTML、vbscript 和 javascript 在经典 ASP 中编写了一个应用程序。这很好,但问题是 2 个页面是用 C# 编写的,带有一个 HTML 文件和一个代码隐藏文件。这两个页面没有解决方案文件。它们可能最初是在 Visual Studio 中创建的,但现在不存在了。

这很重要,因为有很多事情 Visual Studio 甚至不假思索地为您完成。

我的问题是,在这两个 C# 页面中,我需要让它们引用一个 DLL。使用 Visual Studio 时,这是一项简单的任务。您只需添加对项目的引用,生活就很好。但是在 VS 之外似乎没有任何效果。

我尝试将 dll 放在与页面相同的文件夹中,然后我尝试了以下操作:

  • 使用 myDLL;
  • myDLL dll = new myDLL();
  • myDLL dll = myDLL();

我在网上找到了一些代码,说要创建一个内部静态类并使用 [DLLImport()] 但那也不起作用。它找不到 dll 或 dll 的入口点。我目前正在研究如何创建入口点,以防万一这是使一切正常运行的方法。

除了必须用 vbscript 重写这些页面(我没有时间这样做)之外,我不知所措。

有没有人遇到过这个问题?有什么我可以放在 web.Config 中的吗?或者这是不可能的,我被冲洗了。

顺便说一句,这一切都在 2.0 .net 框架下运行。

最佳答案

如果将要代码引用的DLL放到网站的bin文件夹中,然后打开web.config并找到以下部分 configuration -> system.web -> compilation -> assemblies.

您需要将程序集的显示名称添加到该列表 - 以便编译器在后期绑定(bind)构建过程中引用该程序集。

现在您应该可以在这些页面上使用其中的内容了。

如果您不知道程序集的显示名称(通常是 yourassembly, version=*.*.*.*, Culture=neutral, PublicKeyToken=null 对于文化不变,非-strong-named assemblies) 你可以在像ILSpy这样的工具中打开它(还有其他的,它刚刚成为我的最爱)当你在它的 UI 中选择它时它会告诉你:

ILSpy displaying an assembly's display name

抱歉突出显示不佳 - 喝太多咖啡后手生涩

如果该程序集中的所有代码都在一个命名空间中,您还可以通过将该命名空间添加到 configuration -> system.web -> pages -> namespaces - 使在页面中使用该代码变得更简单。

关于c# - 让 C# 识别 Visual Studio 之外的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11253267/

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