繁体   English   中英

将自定义类型的变量传递给自定义MSBuild任务

[英]Pass variable of custom type to custom MSBuild task

我已经开发了名为ExportSolution的自定义MSBuild任务,我需要将自定义enum PackageType值传递给它。

PackageType很简单:

public enum PackageType
{
    Managed,
    Unmanaged,
    Both
}

MSBuild脚本也很简单:

<Target Name="ExportSolution" DependsOnTargets="BuildTasksDll">
    <Message Text="Exporting solution '$(SolutionName)' to '$(SolutionPath)'" />
    <ExportSolution SolutionName="$(SolutionName)" PackageType="Both"></ExportSolution>
</Target>

但是,为该目标运行脚本我收到以下错误消息:

错误MSB4030:“Both”是“ExportSolution”任务的“PackageType”参数的无效值。 “PackageType”参数的类型为“Tasks.Common.PackageType”。

我应该以哪种格式将值传递给PackageType的变量以使此代码有效?

我会像这样重构Enum。

public enum PackageType
{
    Managed = 0,
    Unmanaged = 1,
    Both = 2
}

然后我会编辑我的构建脚本以使用整数作为选择方法。

 <ExportSolution SolutionName="$(SolutionName)" PackageType=2></ExportSolution>

这可能不是您正在寻找的解决方案,但它可能适合您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM