Saya perlu membuat ulang penyedia di file web.config saya yang terlihat seperti ini:
<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>
Namun, saya mendapatkan kesalahan runtime mengatakan majelis ini tidak dapat dimuat, dan saya pikir itu karena saya salah PublicKeyToken. Bagaimana cara mencari PublicKeyToken untuk perakitan saya?
Atau, apakah saya salah sepenuhnya dengan ini?
.net
dll
.net-assembly
publickeytoken
Matthew Jones
sumber
sumber
Jawaban:
Menggunakan PowerShell , Anda dapat menjalankan pernyataan ini:
Output akan memberikan Versi , Budaya dan PublicKeyToken seperti yang ditunjukkan di bawah ini:
sumber
Menggunakan utilitas sn.exe :
atau memuat rakitan di Reflektor .
sumber
Jika Anda memiliki DLL yang ditambahkan ke proyek Anda, Anda dapat membuka file csproj dan melihat tag Referensi.
Contoh:
sumber
sn -T <assembly>
di baris perintah Visual Studio. Jika rakitan dipasang di cache rakitan global, lebih mudah untuk pergiC:\Windows\assembly
dan menemukannya di daftar rakitan GAC.Pada kasus khusus Anda, Anda mungkin mencampur nama lengkap tipe dengan referensi perakitan, Anda mungkin ingin melihat MSDN .
sumber
Jawabannya sangat sederhana menggunakan alat .NET Framework
sn.exe
. Jadi buka Visual Studio 2008 Command Prompt dan kemudian arahkan ke folder dll Anda ingin mendapatkan kunci publik,Gunakan perintah berikut,
Ini akan memberi Anda token kunci publik. Ingat satu hal ini hanya berfungsi jika majelis harus ditandatangani dengan kuat.
Contoh
sumber
Saya menggunakan Windows Explorer, arahkan ke C: \ Windows \ assembly, temukan yang saya butuhkan. Dari Properties Anda dapat menyalin PublicKeyToken.
Ini tidak bergantung pada Visual Studio atau utilitas lain yang diinstal.
sumber
Hanya menambahkan lebih banyak info, saya tidak dapat menemukan utilitas sn.exe di lokasi yang disebutkan, dalam kasus saya itu di C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
sumber
Akan menghasilkan
sumber
Seperti yang dikatakan @CRice, Anda dapat menggunakan metode di bawah ini untuk mendapatkan daftar unit dependen dengan publicKeyToken
saya biasanya menggunakannya sebagai skrip LinqPad Anda dapat menyebutnya sebagai
DependencyInfo("@c:\MyAssembly.dll");
dari kodesumber
Anda juga dapat memeriksa dengan metode berikut.
Pergi ke Jalankan: ketik lintasan DLL yang Anda perlukan kunci publik. Anda akan menemukan 2 file: 1. __AssemblyInfo_.ini 2. File DLL
Buka file __AssemblyInfo_.ini ini di notepad, di sini Anda dapat melihat Token Kunci Publik.
sumber