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>

请参阅