在 aspx 页面中使用程序集

问题描述 投票:0回答:2

我有一个非常简单的aspx脚本:

<%@ Page Language="C#" Debug="true" %>
<%@ Assembly Name="MimeKit.dll" %>
<%
Response.Write("test");
%>

MimeKit.dll 与此脚本位于同一文件夹中。

我找到的答案告诉我将其放入 bin 文件夹中。 我没有 bin 文件夹,这只是一个文件 - 不是在 Visual Studio 中创建的,也不属于项目或应用程序的一部分。

任何人都可以告诉我我需要做什么,不涉及使用 Visual Studio,才能使用这个 dll。

我收到错误:

Could not load file or assembly 'MimeKit.dll' or one of its dependencies. The system cannot find the file specified.

我像这样运行脚本:

http://localhost/test/mail.aspx

我在 http://localhost/bin 创建了一个 bin 文件夹,并将 dll 放入其中。 我还在 http://localhost/test/bin 创建了一个 bin 文件夹。 我也遇到同样的错误。

也尝试过:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.2 Tools\x64\gacutil.exe" /i MimeKit.dll

说它成功了,但我仍然遇到同样的错误。

还使用 VS 2017 的开发人员命令提示符执行 gacutil - 没有区别。

还在 web.config 中添加了以下内容:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="myAssembly" publicKeyToken="bede1c8a46c66814" culture="neutral" />
            <codeBase version="2.1.0.0" href="http://localhost/bin/MimeKit.dll"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

仍然不行——同样的错误消息。 (注:我通过使用

gacutil /l MimeKit
获得了公钥令牌。

发现 MimeKit 有依赖项(BouncyCastle.Crypto.dll),因此尝试使用它:

<%@ Page Language="C#" Debug="true" %>
<%@ Assembly Name="BouncyCastle.Crypto.dll" %>
<%
Response.Write("test");
%>

同样的错误,并且没有依赖性。

拔掉我的头发 - 有人知道该怎么做吗?

c# asp.net dll .net-assembly
2个回答
0
投票

好吧——我找错了树。这就是我所需要的。 不需要注册dll,只需要把它放在文件夹中:http://localhost/bin

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="MimeKit" %>

0
投票

我一直在删除文件背后的默认代码,并使用以下内容链接到我的库中的类;

<%@ Assembly name="<AssemblyName>" %>
<%@ Import Namespace="<DefaultNamespace>" %>
<%@ Page Language="C#" AutoEventWireup="false" Inherits="<Namespace(s)>.<ActingCodeBehind>" %>

注意:这种方式没有智能感知。此外,我不再确定前两行是否仍然相关。 干杯

© www.soinside.com 2019 - 2024. All rights reserved.