Мне нужно восстановить провайдера в моем файле 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 для моей сборки?
В качестве альтернативы, я иду совершенно неправильно с этим?
.net
dll
.net-assembly
publickeytoken
Мэтью Джонс
источник
источник
Ответы:
Используя PowerShell , вы можете выполнить этот оператор:
Выходные данные предоставят Version , Culture и PublicKeyToken, как показано ниже:
источник
Использование утилиты sn.exe :
или загрузка сборки в Reflector .
источник
Если у вас есть DLL, добавленная в ваш проект, вы можете открыть файл csproj и увидеть тег Reference.
Пример:
источник
sn -T <assembly>
в командной строке Visual Studio. Если сборка установлена в глобальном кэше сборок, проще перейти кC:\Windows\assembly
и найти ее в списке сборок GAC.В вашем конкретном случае вы можете смешивать полное имя типа со ссылкой на сборку, возможно, вы захотите взглянуть на MSDN .
источник
Ответ очень прост, используйте инструменты .NET Framework
sn.exe
. Поэтому откройте командную строку Visual Studio 2008, а затем укажите папку DLL, в которой вы хотите получить открытый ключ,Используйте следующую команду,
Это даст вам токен открытого ключа. Помните одну вещь, это работает, только если сборка должна быть строго подписана.
пример
источник
Я использую Windows Explorer, перехожу к C: \ Windows \ assembly, нахожу тот, который мне нужен. Из свойств вы можете скопировать PublicKeyToken.
Это не зависит от установки Visual Studio или любых других утилит.
источник
Просто добавив дополнительную информацию, я не смог найти утилиту sn.exe в упомянутых местах, в моем случае это было в C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
источник
Приведет к
источник
Как сказал @CRice, вы можете использовать метод ниже, чтобы получить список зависимых сборок с publicKeyToken
я обычно использую его как скрипт LinqPad, вы можете назвать его как
DependencyInfo("@c:\MyAssembly.dll");
из кодаисточник
Вы также можете проверить, используя следующий метод.
Перейти к Run: введите путь к DLL, для которой вам нужен открытый ключ. Вы найдете 2 файла: 1. __AssemblyInfo_.ini 2. Файл DLL
Откройте этот файл __AssemblyInfo_.ini в блокноте, здесь вы можете увидеть токен открытого ключа.
источник