我需要在我的网络中重新创建一个提供者。配置文件看起来像这样:

<membership defaultProvider="AspNetSqlMemProvider">
  <providers>
    <clear/>
    <add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0"
         name="AspNetSqlMemProvider"
         type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
    />
  </providers>
</membership>

然而,我得到一个运行时错误,说这个程序集无法加载,我认为这是因为我有错误的PublicKeyToken。如何为程序集查找PublicKeyToken ?

或者,我是否完全走错了方向?


当前回答

使用sn.exe实用程序:

sn -T YourAssembly.dll

或在Reflector中加载组件。

其他回答

sn -T < Visual Studio命令行中的组装>。 如果在全局程序集缓存中安装了程序集,则更容易转到c:\ windows \程序集并在GAC程序集列表中找到它。

在您的特定情况下,您可能混合了类型全名和程序集引用,您可能需要查看MSDN。

把dll-assemblyinfo文件放入$PATH:

#!/bin/sh

f=$(readlink -f "$1")

{
echo "using System.Reflection;"
echo "Assembly.LoadFile(\"$f\");"
} | csharp

那么Chmod +x

$ dll-assemblyinfo packages/System.Buffers.4.5.1/lib/netstandard2.0/System.Buffers.dll
System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51

只是添加更多的信息,我无法在上述位置找到sn.exe实用程序,在我的情况下,它是在C:\Program Files (x86)\Microsoft sdk \Windows\v7.0A\bin

汇编。LoadFile(@“C: \ Windows \微软。NET框架v4。0。30319 \等”)。FullName数据系统。

会导致

系统。数据,版本=4.0.0.0,文化=中立, PublicKeyToken = b77a5c561934e089

使用sn.exe实用程序:

sn -T YourAssembly.dll

或在Reflector中加载组件。