gpt4 book ai didi

msbuild - MSBuild 中可为空的参数值

转载 作者:行者123 更新时间:2023-12-04 03:20:26 29 4
gpt4 key购买 nike

我正在编写一个 MSBuild 任务来升级数据库(完整源代码 here),遇到了一个我不知道如何处理的错误/设计特征。基本上,如果我声明:

public int? TargetVersion
{
[DebuggerStepThrough]
get { return targetVersion; }
[DebuggerStepThrough]
set { targetVersion = value; }
}

然后尝试在 .msbuild 文件中赋值:

<Target Name="Upgrade">
<UpgradeDatabase ... TargetVersion="10" />
</Target>

MSBuild 吓坏了并说

error MSB4030: "10" is an invalid value for the "TargetVersion" parameter of the "UpgradeDatabase" task. The "TargetVersion" parameter is of type "System.Nullable`1[System.Int32]".

如何为可为 null 的属性赋值?

最佳答案

那时 MSBuild 似乎不支持可为 null 的值。解决方法是在内部使用可为空的属性,但提供一个公共(public)的不可为空的属性。这样,对公共(public)属性的第一次赋值会将内部值从 null 设置为实际值,因此您在新初始化的实例中有 null,但 MSBuild 可以愉快地为其赋值。

也就是说,除非有某种方法可以诱使 MSBuild 直接支持可空值:)

关于msbuild - MSBuild 中可为空的参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/920077/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com