gpt4 book ai didi

c# - 代码契约构建引用装配 Action

转载 作者:IT王子 更新时间:2023-10-29 04:08:04 24 4
gpt4 key购买 nike

我正在使用代码契约并试图了解我应该使用哪个构建选项以及何时使用。合约程序集构建选项在项目属性中定义

代码契约 -> 契约引用程序集:

  • build
  • 不要 build

有什么想法或建议吗?

最佳答案

契约(Contract)引用程序集 是一种特殊的程序集,它保留您在源代码文件中定义的任何代码契约(Contract)。这是必要的,因为在编译时,代码合约的“重写器”(ccrewriter)删除或替换每个合约具有等效的验证代码(Contract.Requires(someBool) 可能重写为 if (!someBool) throw)。

如果没有代码契约,如果您稍后在不同的解决方案中引用编译后的程序集(不是项目及其所有源代码文件),它可能不知道任何代码契约。如果创建了契约(Contract)引用程序集,IDE 可以在静态分析期间考虑该程序集中的任何契约(Contract)。

至于设置,这是它们的意思:

  • (none) 表示您没有进行选择,因此不会创建引用程序集。如果另一个程序集依赖于此程序集并且您为其选择了 Build,您可能会收到错误/警告“未找到契约(Contract)引用程序集”。

  • 如果您将设置更改为Build,将创建​​一个包含所有合约的引用程序集。您将能够像拥有源代码一样使用该程序集中定义的所有代码协定。如果您正在创建一个将由第 3 方(例如 NuGet 包)或任何人在程序集编译后使用的库,请选择此选项,这样他们将受益于您的静态代码契约分析。

  • 如果您将设置更改为 DoNotBuild,将不会构建任何引用程序集以保留您的代码约定。如果您不打算在其他任何地方使用此程序集,或者如果该程序集的所有其他用户都可以访问源代码并且不需要引用程序集,请选择此选项。它可能会稍微加快构建速度。

关于c# - 代码契约构建引用装配 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817061/

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