我有一个非常简单的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");
%>
同样的错误,并且没有依赖性。
拔掉我的头发 - 有人知道该怎么做吗?
好吧——我找错了树。这就是我所需要的。 不需要注册dll,只需要把它放在文件夹中:http://localhost/bin
<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="MimeKit" %>
我一直在删除文件背后的默认代码,并使用以下内容链接到我的库中的类;
<%@ Assembly name="<AssemblyName>" %>
<%@ Import Namespace="<DefaultNamespace>" %>
<%@ Page Language="C#" AutoEventWireup="false" Inherits="<Namespace(s)>.<ActingCodeBehind>" %>
注意:这种方式没有智能感知。此外,我不再确定前两行是否仍然相关。 干杯