[.net] 如何找到特定dll的PublicKeyToken?


Answers

使用sn.exe实用程序:

sn -T YourAssembly.dll

或在Reflector加载组件。

Question

我需要在我的web.config文件中重新创建一个提供程序,如下所示:

<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?

或者,我是否完全用这种方式错误的方式?




如果将DLL添加到项目中,则可以打开csproj文件并查看Reference标签。

例:

<Reference Include="System.Web.Mvc, Version=3.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />



您也可以通过以下方法进行检查。

转到运行:键入您需要公钥的DLL的路径。 你会发现2个文件:1. __AssemblyInfo_.ini 2. DLL文件

在记事本中打开这个__AssemblyInfo_.ini文件,在这里你可以看到公钥标记。




我使用Windows资源管理器,导航到C:\ Windows \ assembly,找到我需要的。 从属性中可以复制PublicKeyToken。

这不依赖于Visual Studio或任何正在安装的其他实用程序。




Links