代码之家  ›  专栏  ›  技术社区  ›  jamesmillerio

Microsoft代码合约是否可以与ASP.NET网站?

  •  7
  • jamesmillerio  · 技术社区  · 17 年前

    我当前正在使用 Microsoft Code Contracts 在一个ASP.NETMVC应用程序没有任何问题,但我似乎不能让它运行在一个基本的ASP.NET网站。我不完全确定它是为了配合这种类型的项目而设计的(尽管这不重要),所以我想把它告诉每个人。

    我可以很好地编译契约,但是代码会跳过它们,因为我假设它没有像在其他项目类型中那样通过属性页启用(即ASP.NETMVC)。我已经转到项目的属性页(它显示一个对话框,而不是典型的属性页)ASP.NET但是它没有提供相同的菜单选项,因此,没有专门的代码契约部分。

    "Exception of type 'System.ExecutionEngineException' was thrown" 没有内部异常的错误。我的合同指定了一条在违反时显示的消息,但它不在例外范围之内。它只是停止进程的执行(我相信这是微软代码契约的默认功能)。

    我找不到任何地方明确声明特定项目类型可以或不能(或不应该)与合同一起使用,所以我只想看看是否有人遇到过这个问题。

    谢谢你的帮助!

    2 回复  |  直到 16 年前
        1
  •  1
  •   James Reategui    14 年前

    我也遇到了同样的问题,我就是这样解决的:

    合同引用程序集:确保将其设置为“Build”

    保存更改。

    在代码中没有协定的被引用类库中,将协定引用程序集设置为“不生成”。

    然后在MVC项目中,检查代码契约“performcontract checking”。我把我的设置为“满”。

    希望这能帮助别人。

        2
  •  0
  •   Gyuri    16 年前

    这听起来不像是合同,而更像是构建/配置问题。您是否尝试部署预建网站?你确定你的网站代码看到了合同代码吗?是ASP.NET运行时使用CLR4.0,还是它看到前面的Microsoft.Contracts.dll?等。