使用命令行工具SDK Command Prompt,键入:SN -T C:\*****.dll  (dll文件所在的路径) 就会显示出该dll具体的PublicKeyToken数值. 如果该程序集没有强命名,则不会有PublicKeyToken数值. 第一种方法: 在类库中右击-->属性-->签名:勾选“为程序集签名”,新建一个“强名称密钥文件”就可以. 如图所示: 第二种方法: 将一个程序集强命名的方法是: 用SN -k C:\***.snk命令生成***.snk文件,将该snk文件加载到项…
如何创建强命名程序集(Strong Name Assembly)     创建一个强命名程序集首先需要获得一个用强命名实用工具   (Strong Name Utility,即SN.exe,.NET SDK自带)产生的密钥.   下面简要介绍一下SN.exe的一些用法. 要产生一个公钥/私钥对:     a)SN –k MyCompany.Keys   该命名告诉SN.exe创建一个名为MyCompany.keys的文件.MyCompany.keys文件将包含以对以二进制格式存储的公有密钥和私有…
先说结论,如果有两个拥有相同程序集名称的强命名程序集,一个在GAC里,一个不在.怎样动态加载那个不在GAC里的程序集?答案就是只有Assembly.ReflectionOnlyLoadFrom才可以加载这个程序集, 比如我们把system.dll文件拷贝到D盘(注意应用程序域默认会加载mscorlib.dll,而不是system.dll).然后试试用下面的方法: var path = @"D:\system.dll"; //Load(byte[]) Assembly.Load(File…
依据文档: https://msdn.microsoft.com/en-us/library/hh415055(v=vs.110).aspx 虽然文档上给出了看似完整的步骤,但是如果按照上面的步骤,结果是失败的.而且文档的里的option还用错了.(-ac应该用-a, -ac是用于keypaircontainer) 以下是一个完整的强签名迁移的sample: 用于测试的代码,可以建一个console app,类似下面的例子: using System; using System.Reflecti…
第一部分 CLR基础:第3章 共享程序集和强命名程序集…
未能加载文件或程序集“Jonckers.Service.RedisCacheEngineExtend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项.需要强名称程序集. (异常来自 HRESULT:0x80131044) 强名称签名的方法: 强签名: 可以将强签名的dll注册到GAC,不同的应用程序可以共享同一dll. 强签名的库,或者应用程序只能引用强签名的dll,不能引用未强签名的dll,但是未强签名的dll可…
很多团队经历时间的积淀之后,都会有很多的可重用的公共技术组件.大部分的团队都会把这些公共组件生成程序集(dll)后,放到GIT或SVN的一个公共目录里面,以供各个项目中使用.起初在项目很少又或者是公共组件不多的时候,这样看起来也没有多大问题.但是随着团队越来越大,项目的组件增多,所封装的可重用组件越来越多,一些问题就会慢慢暴露出来.这个时候如果还是使用这种方式去管理程序集,显然就不太合适了. 我们知道,在Java中比较常用的包管理工具,如Maven.实际上在很多大公司里面都会搭建自己公司的Mav…
2016-05-26 11:48:46 测试的WPF项目 MainWindow.xaml代码 MainWindow.xaml.cs 代码 在学习WPF的时候,想验证:删除MainWindow.xaml.cs文件中的 InitializeComponent();.使用ILDisassembler查看项目编译生成的程序集.先查看VS2012“工具”中是否有“ILDASM工具”. 若没有,则在“外部工具”中添加. 注意:在参数中$(TargetPath) /text /item;两个“/”前必须加一个…
对于IIS6可以运行 iisapp -a来显示应用程序池的性能列表. iisapp.vbs它是一个脚本程序,在安装2003时需要SP1才有 而IIS7可以直接用它的外壳命令 C:"Windows"System32"inetsrv>appcmd.exe list wp来显示 有时候因为服务器安全问题不能直接运行,我们可以通过下面的方法解决下. IIS7中查看w3wp进程 在IIS中可以用iisapp命令查看到所有w3wp进程的情况,但IIS7中微软改变了做法,改用了App…
在做asp.net开发过程中,偶尔对有些dll,进行强制签名,那么在注册dll到gac的时候,就需要知道dll的PublicKeyToken值,如何通过简单的方法,来获得这个值呢,下面是一个很好又实用的方法: 1.查找路径:C:\Windows\assembly\项目名称 2.通过powershell,运行如下代码,就能查看到.(管理员运行方式) ([system.reflection.assembly]::loadfile(“C:\nutech\Nuctech.OA.Extend\Nuctec…
用 Delphi 用长了,总是发现,有些和 MS 不同的地方.例如,MS 的公开库中,常常隐藏了许多重要函数,这些函数在系统中常常有起着非常巨大的作用.一旦知道如何调用,可以给自己的应用程序提供很强的功能和很大的灵活性.但,这些函数通常又没有函数名(即使用 ExeScope 查看 DLL 文件的导出表也看不出函数意义),仅仅只有一个序号来表示.有时候我又自己想,为什么我在写程序的时候不能学学 MS 隐藏一些自己不希望公开的函数呢? 其实用 Delphi 写 DLL 的时候,使用简单的技巧就可以实…
1.新建一个image存储 rbd create hzb-mysql --size 2048 2.查看hzb-mysql的所有对象 一个rbd image实际上包含了多个对象(默认情况下是image_size/4M) [root@cc ~]# rbd info hzb-mysql rbd image 'hzb-mysql': size 2048 MB in 512 objects order 22 (4096 kB objects) block_name_prefix: rb.0.11895f.…
#!/bin/bash # 这个脚本是用来描述和确认是否可以安装一个rpm包 # 在一个文件中保存输出 SUCCESS=0 E_NOARGS=65 if [ -z "$1" ] then     echo "Usage: `basename $0` rpm-file"     exit $E_NOARGS fi {     echo     echo "Archive Description:"     rpm -qpi $1          …
在Idea中直接Ctrl + t 查看类的子类是可以看到,但是他没有那种层级顺序! 我们可以在类中点击顶部菜单Navigate -----> Type Hierarchy…
在面板顶部的工具栏中,找到Navigate,然后在下拉列表中,找到“Type Hierarchy”(快捷键 Ctrl+H),点击.即可在面板右侧出现该类的Hierarchy层级图.…
routes/web.php 设置路由 Route::group(['middleware' => ['\iqiyi\Http\Middleware\VerifyCsrfToken::class']], function () { //支付订单 Route::any('order/{action}', function(\iqiyi\Http\Controllers\Order $index, $action,\Illuminate\Http\Request $request ){ return…
利用replace.length的内置函数…
利用Method执行main方法 问题: 启动Java程序的main方法的参数是一个字符串数组,即public static void main(String[] args),通过反射方式来调用这个main方法时, 如何为invoke方法传递参数呢?按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,当把一个字符 串数组作为参数传递给invoke方法时,javac会到底按照哪种语法进行处理呢?jdk1.5肯定要兼容jdk1.4的语法,会按jdk1.4的…
在程序中设置了代理,但是不知道如何判断是否真的使用了该代理, 在Visual Studio中可以使用以下方式来查看: 设置了代理 -> 在代码中WebRequest的实例处设置断点 -> 查看WebRequest的Proxy属性 -> 然后一直查看下去,查看[System.Net.WebProxy] -> 查看Address等信息 如图: 这里通过手动设置WebRequest.Proxy的属性来设置代理: 然后在下一行代码出设置了断点, 接着运行程序,然后查看Proxy属性 -&g…
@RequestMapping注解分散于Controller中,如何在一个列表中看到所有的请求呢,比如下面这样: File-->Project Structure-->Modules-->点击加号,添加Spring 如果没有Spring,就到File-->settings-->plugins中添加Spring Support 点击IntelliJ底部的Spring,点击MVC,注意左侧第二个按钮,show controllers,然后就可以看到所有的请求列表了 参考:http…
不要在普通的命令行窗口中编译,请先打开C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2010\Visual Studio Tools路径下的Visual Studio 命令提示(2010),在该窗口中输入命令. 生成一个公钥/私钥对:SN -k 生成文件名(.snk) 创建一个只包含公钥的文件SN -p 公钥/私钥对文件(.snk) 生成文件名(.PublicKey) 查看公钥SN -tp…
使用命令行工具SDK Command Prompt,键入:SN -T C:\*****.dll 就会显示出该dll具体的PublicKeyToken 数值. 如果该程序集没有强命名,则不会有PublicKeyToken 数值. 将一个程序集强命名的方法是: 用SN -k C:\***.snk命令生成***.snk文件,将该snk文件加载到项目中.在项目上右键属性,选择Signing选项卡,钩选中"Sign the assembly",再在下拉列表中选择刚才生成的***.snk,重新编译…
我们知道,在idea中是可以通过[ctrl+鼠标左键单击]去跳到方法调用方去的,但是在eclipse中却是不行的. 三种快捷键方式 这里列出在eclipse中查看一个方法被谁调用的三种方式(快捷键). 1.双击选中该方法,按下[Ctrl+Alt+H]快捷键(首推). eclipse会显示出这个方法被哪些方法调用,最终产生一个调用关系树,通过这个调用关系树我们就能知道一个类的方法到底被那些其他的类调用了. 2.选中该方法,按下[Ctrl+Shift+G]快捷键(次推). eclipse会显示出这个…
如果你想去除一个程序集的强签名(strong name),目前为止可以有两个途径 1  反编译为IL代码,删除签名部分,再编译为程序集 2  应用Re-Sign程序,直接对一个程序集再签名 生成和读取强命名 先来看,如何生成.NET的签名文件,调用命令SN传入参数. 下面的代码读取该文件, FileStream keyPairFile = File.OpenRead("key.sn"); this.byte_2 = new StrongNameKeyPair(keyPairFile).…
UPD(Membership)数据库安装1.使用 Aspnet_regsql.exe 安装数据库 在 C:\WINDOWS\Microsoft.NET\Framework\\aspnet_regsql.exe2.一步步按照指引即可 ClickOnce需要创建证书C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64 1.创建一个自我签署的X.509证书(.cer)和一个.pvk私钥文件,用到makecert工具,命令如下:…
一  问题的出现 现在要做一个net分布式平台,平台涉及多个服务之间调用问题,最基础的莫过于sso.由于我们的sso采用了wcf一套私有框架实现,另外一个webapi服务通过接口调用sso服务.由于sso和webapi都同时采用了 在net平台下广泛使用的序列化库Newtonsoft.Json,虽说他是开源的.,但是被不同的dll依赖过后会带有强命名.这个时候sso使用了Newtonsoft.Json强命名a,而webapi的system.web.http使用了Newtonsoft.Json强命…
要想得到强签名的dll有两种情况: 1.给项目添加强命名 在你的项目右键->属性->签名,勾选“为程序集签名”,新建 或 浏览已经新建过的.pfx文件,然后重新build项目,生成的dll就是强命名的dll了. 2.直接给dll强命名 运行vs自带的命令提示工具,执行 sn -k [文件名].snk 命令创建snk文件(其中[文件名]你自己命名,可以包含路径): 使用ildasm **.dll /out:**.il 将dll生成中间语言文件 再使用ilasm **.il /dll /key=[…
原文作者:Alex Blekhman    翻译:朱金灿 原文来源: http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx 译文来源:http://blog.csdn.net/clever101 C++语言毕竟能和Windows DLLs能够和平共处. 介绍 自从Windows的开始阶段动态链接库(DLL)就是Windows平台的一个组成部分.动态链接库允许在一个独立的模块中封装一系列的功能函数然后以一个显式的C函数列表提…
在.NET的GAC出现之前,以前有DLL Hell的问题.这是由于当时对于共享的DLL的处理方式.是通过採用注冊表的方式实现的.当我们安装一个程序A的时候,这个程序包括一个共享的DLL,那么这个DLL就会就会写入到注冊表中,可是注意这里并没有写入版本号信息,仅仅是告诉你在哪个地方有一个叫做XX的DLL能够使用. 当安装另外的一个程序B的时候.也包括这个共享的DLL,可是是一个更加新一些的版本号,系统会发现这个DLL已经注冊存在了.就会用这个DLL去覆盖原来的DLL,可是由于注冊表中前后没有不论什…