我已经开发了名为exportsolution的自定义msbuild任务,需要将自定义的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的变量以使此代码工作?

最佳答案

我会像这样重构枚举。

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

然后我将编辑我的构建脚本以使用整数作为选择方法。
 <ExportSolution SolutionName="$(SolutionName)" PackageType=2></ExportSolution>

这可能不是你正在寻找的解决方案,但它可能为你所需要的工作。

08-19 12:59