我要签名的DLL的原因是因为我想将它添加到全局程序集缓存。 该组件是CSS解析引擎用Java编写的,并移植到J#。 我使用VS2008,所以我不能让J#项目。 它没有分配给它的强名称密钥,我不知道该怎么现在,它的建成做到这一点。
有人有主意吗?
我要签名的DLL的原因是因为我想将它添加到全局程序集缓存。 该组件是CSS解析引擎用Java编写的,并移植到J#。 我使用VS2008,所以我不能让J#项目。 它没有分配给它的强名称密钥,我不知道该怎么现在,它的建成做到这一点。
有人有主意吗?
一点点搜索后,我发现这个职位 ,说明这样做的一种方式。
Exerpt:
从VS.NET命令提示符下,输入以下命令:
步骤1:重氮基装配组件
ildasm myTest.dll /out:myTest.il
第2步:使用强名称密钥重新组装
ilasm myTest.il /res:myTest.res /dll /key:myTest.snk /out:myTestSN.dll
为了验证你可以使用下面的命令:
sn -vf myTestSN.dll
希望这可以帮助!
此链接也显示了如何做到这一点,包括当你签署了第三方组件中的一个必须是在您登入另一个未签名程序集的引用:
http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing
编辑:对不起,链接捣毁。
的强名称工具可以重新登录现有装配,使用-R选项。 然而,从我的理解,大会须预先签署或延迟签名......不知道你可以用一个无符号装配使用它,但你可以试一试
THX 8年前的今天仍然救了我张贴的答案特别PJ8。 “我的”组装需要去在GAC,但依赖于SQLite的-PCL-网作为其1.3.1版本不强名称虽然现在是依赖于强命名SQLitePCLRaw.bundle_green。 所以我不得不为了签下我自己组装。换句话说签署的SQLite-PCL-网。 我结束了在这个岗位信息和其他一些地方,我今天走过巩固一个从摇篮到坟墓的.bat文件。 在“专业人士”都为1,这蝙蝠在要签名2.显示至少一个提示,其中三个工具可能位于dev的机器组件的位置运行。 3.按顺序显示的所有步骤。 该课程的“CON”是你的里程可能在何处ILDASM,ILASM和sn实际上位于您的特定PC的不同而不同。 无论如何欢呼。
REM Create a new, random key pair
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -k SQLite-net.snk
REM Store the key in the container MySQLiteKeys in the strong name Cryptographic Services Provider (CSP).
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -i SQLite-net.snk MySQLiteKeys
REM Disassemble to Intermediate Language
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\ildasm" SQLite-net.dll /out:SQLite-net.il
REM Rename original file
ren SQLite-net.dll SQLite-net.dll.orig
REM Reassemble to a strong-named version
"c:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm" SQLite-net.il /dll /key=SQLite-net.snk /out:SQLite-net.dll
REM Verify the assembly
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -v SQLite-net.dll
REM Deletes MySQLiteKeys from the default CSP
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -d MySQLiteKeys
REM View results
pause