fos*_*ndy 14 c# assembly-signing
我试图通过以下指南来签署一个强名称的程序集:http://msdn.microsoft.com/en-us/library/xc31ft41.aspx
关键指令是:
al /out:<assembly name> <module name> /keyfile:<file name>
Run Code Online (Sandbox Code Playgroud)
它说
module name是用于创建程序集的代码模块的名称
我不明白这意味着什么.从字面意义上讲,我会将上面的内容解释为csc.exe的某些组件(即,它创建了程序集)但显然这在此上下文中是无意义的.
首先,这是指什么,其次(为了帮助我的元学习)如何去推理它是什么?我得到的印象是文档的简洁性,对我来说应该是显而易见或直观的,但目前并非如此.
我尝试指定一些随机名称(例如blah.blah),但得到此错误:
ALINK:错误AL1047:将文件'c:\ path \导入\ proj\bin\Debug\blah.blah'时出错 - 系统找不到指定的文件.
编辑:进一步阅读我得到的印象模块名称是代码的名称,但我没有任何运气指定.cs文件 - 我被告知Database file is corrupt and may not be usable.
程序集由模块(.netmodule文件)组成,这些模块是通过编译源(.cs文件)生成的.程序集链接器负责将模块打包到程序集中.所以如果你有两个源文件class1.cs和class2.cs:
csc /t:module class1.cs
csc /t:module class2.cs
al /out:assembly.dll /t:library class1.netmodule class2.netmodule
Run Code Online (Sandbox Code Playgroud)
有关CLR如何处理模块,清单和程序集的最佳方法,请参阅Richter.