许可证编译器读取包含授权信息的文本文件,并产生一个可作为资源嵌入到公用语言运行时可执行文件中的二进制文件。
每当将一个授权控件添加到窗体时,Windows 窗体设计器就会自动生成或更新 .licx 文本文件。 作为编译的一部分,项目系统将文本文件 .licx 文件转换为 .licenses 二进制资源,此二进制资源提供对 .NET 控件授权的支持。 然后该二进制资源将被嵌入到项目输出中。
在绑定项目时,如果使用许可证编译器,则不支持在 32 位与 64 位之间进行交叉编译。 这是因为许可证编译器必须加载程序集,而不允许从 32 位应用程序加载 64 位程序集,反之亦然。 在这种情况下,使用许可证编译器从命令行手动编译许可证,并指定相应的体系结构。
许可证编译器自动与 Visual Studio 一起安装。 要启动许可证编译器,使用 Visual Studio 和 Windows SDK 命令提示。 在命令提示处,键入下列命令:
lc /target:targetPE /complist:filename [/outdir:path]
/i:modules [/nologo] [/v]
选项 |
说明 |
---|---|
/complist:文件名 |
指定包含授权组件列表的文件名,这些授权组件要包括到 .licenses 文件中。 每个组件用它的全名引用,并且每行只有一个组件。 命令行用户可为项目中的每个窗体指定一个单独的文件。 Lc.exe 接受多个输入文件并产生一个 .licenses 文件。 |
/h[elp] |
显示该工具的命令语法和选项。 |
/i:模块 |
指定模块,这些模块包含文件 /complist 中列出的组件。 若要指定多个模块,请使用多个 /i 标志。 |
/nologo |
取消显示 Microsoft 启动标题。 |
/outdir:路径 |
指定用来放置输出 .licenses 文件的目录。 |
/target:targetPE |
指定为其生成 .licenses 文件的可执行文件。 |
/v |
指定详细模式;显示编译进度信息。 |
/? |
显示该工具的命令语法和选项。 |
示例
如果使用的是包含在名为 HostApp.exe 的应用程序中的 Samples.DLL 中的授权控件 MyCompany.Samples.LicControl1,则可以创建包含以下内容的 HostAppLic.txt。
MyCompany.Samples.LicControl1, Samples.DLL
使用下面的命令创建名为 HostApp.exe.licenses 的 .licenses 文件。
lc /target:HostApp.exe /complist:hostapplic.txt /i:Samples.DLL /outdir:c:\bindir
生成将 .licenses 文件作为资源包含在内的 HostApp.exe。 如果生成的是 C# 应用程序,则应使用下面的命令生成应用程序。
csc /res:HostApp.exe.licenses /out:HostApp.exe *.cs
下面的命令根据由 hostapplic.txt、hostapplic2.txt 和 hostapplic3.txt 指定的授权组件列表来编译 myApp.licenses。 modulesList 参数指定包含授权组件的模块。
lc /target:myApp /complist:hostapplic.txt /complist:hostapplic2.txt /complist: hostapplic3.txt /i:modulesList
请参见
参考
Visual Studio 和 Windows SDK 命令提示