LC 任务
包装 LC.exe 文件,它可从 .licx 文件生成 .license 文件 。 有关 LC.exe 的详细信息,请参阅 Lc.exe(许可证编译器) 。
参数
下表描述了 LC
任务的参数。
参数 | 说明 |
---|---|
LicenseTarget |
必选 ITaskItem 参数。 指定将为其生成 .licenses 文件的可执行文件 。 |
NoLogo |
可选 Boolean 参数。取消显示 Microsoft 启动版权标志。 |
OutputDirectory |
可选 String 参数。指定用来放置输出 .licenses 文件的目录 。 |
OutputLicense |
可选 ITaskItem 输出参数。 指定 .licenses 文件的名称 。 如果不指定名称,则会使用 .licx 文件的名称,且 .licenses 文件会放在包含此 .licx 文件的目录中 。 |
ReferencedAssemblies |
可选 ITaskItem[] 参数。指定要在生成 .licenses 文件时加载的引用组件 。 |
SdkToolsPath |
可选 String 参数。指定 SDK 工具(例如 resgen.exe)的路径 。 |
Sources |
必选 ITaskItem[] 参数。指定包含许可组件的项,这些组件将要包含在 .licenses 文件中 。 有关详细信息,请参阅 Lc.exe (License Compiler)(Lc.exe(许可证编译器))中的 /complist 开关的文档。 |
ToolTaskExtension 参数
此任务继承自 ToolTaskExtension 类,该类继承自 ToolTask 类,后者本身继承自 Task 类。 此继承链向从它们派生的任务添加了几个参数。
下表介绍基类的参数:
参数 | 说明 |
---|---|
EchoOff | 可选 bool 参数。设置为 true 时,此任务会将 /Q 传递到 cmd.exe 命令行,以便命令行不会复制到 stdout。 |
EnvironmentVariables | 可选的 String 数组参数。环境变量定义的数组,用分号分隔。 每个定义都应指定用等号分隔的环境变量名称和值。 这些变量会传递到生成的可执行文件以及(有选择地重写)常规环境块。 例如, Variable1=Value1;Variable2=Value2 。 |
ExitCode | 可选 Int32 输出只读参数。指定执行的命令提供的退出代码。 如果任务记录了任何错误,但进程的退出代码为 0(成功),则这设置为 -1。 |
LogStandardErrorAsError | 可选 bool 参数。如果是 true ,则在标准错误流上收到的所有消息都记录为错误。 |
StandardErrorImportance | 可选 String 参数。用于从标准错误流记录文本的重要性。 |
StandardOutputImportance | 可选 String 参数。用于从标准输出流记录文本的重要性。 |
Timeout | 可选 Int32 参数。指定终止任务可执行文件之前的时间量(以毫秒为单位)。 默认值是 Int.MaxValue ,指示没有超时期限。 超时以毫秒为单位。 |
ToolExe | 可选 string 参数。项目可能会实现此参数以重写 ToolName。 任务可能会重写此参数以保留 ToolName。 |
ToolPath | 可选 string 参数。指定任务从中加载基础可执行文件的位置。 如果未指定此参数,则任务会使用与运行 MSBuild 的框架版本对应的 SDK 安装路径。 |
UseCommandProcessor | 可选 bool 参数。设置为 true 时,此任务会为命令行创建一个批处理文件,并使用命令处理器执行它(而不是直接执行命令)。 |
YieldDuringToolExecution | 可选 bool 参数。设置为 true 时,此任务会在其任务执行时生成节点。 |
示例
下例使用 LC
任务来编译许可证。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Item declarations, etc -->
<Target Name="CompileLicenses">
<LC
Sources="@(LicxFile)"
LicenseTarget="$(TargetFileName)"
OutputDirectory="$(IntermediateOutputPath)"
OutputLicenses="$(IntermediateOutputPath)$(TargetFileName).licenses"
ReferencedAssemblies="@(ReferencePath);@(ReferenceDependencyPaths)">
<Output
TaskParameter="OutputLicenses"
ItemName="CompiledLicenseFile"/>
</LC>
</Target>
</Project>