Родинки не работают с MVC3 (System.Web.Mvc.dll) - PullRequest
3 голосов
/ 05 октября 2011

Я только начал исследовать рамки родинок, и у меня не очень хороший опыт с самого начала.По какой-то причине я не могу генерировать родинки для System.Web.Mvc.dll (v.3)

Я постараюсь объяснить мою проблему шаг за шагом

  1. В только что созданное пустое решение я добавил два проекта (Asp.Net MVC 3 и Test).
  2. Добавить ссылку C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET MVC 3 \ System.Web.Mvc.dll) в тестовом проекте.
  3. Добавить Moles Assemly (в VS2010) для System.Web.Mvc.dll в моем тестовом проекте.
  4. Создание проекта.

На шаге 4 я получаю следующую ошибку

    ------ Build started: Project: SampleMvcApplication.UnitTests, Configuration: Debug Any CPU ------
  Microsoft Moles v0.94.51023.0 - http://research.microsoft.com/moles - .NET v4.0.30319
  Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.

  00:00:00.00> moles
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Behaviors.dll
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Moles.dll
    Moles : info : metadata : ignoring reference D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\MolesAssemblies\System.Web.WebPages.Moles.dll
    Moles : info : configuration : diagnostic is on
    Moles : info : metadata : loading C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll
    Moles : info : compilation : output assembly name: System.Web.Mvc.Moles
Moles : warning : metadata : failed to load module System.Web.Mvc.dll:
Moles : warning : metadata : Inheritance security rules violated by type: 'System.Web.Mvc.CompareAttribute'. Derived types must either match the security accessibility of the base type or be less accessible.
Moles : warning : metadata : Inheritance security rules violated by type: 'System.Web.Mvc.RemoteAttribute'. Derived types must either match the security accessibility of the base type or be less accessible.
Moles : error : code : assembly contains no types or failed to load properly
  00:00:00.20> moles generator 1 errors, 3 warnings
C:\Program Files (x86)\Microsoft Moles\bin\Microsoft.Moles.targets(79,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft Moles\bin\moles.exe" @D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication.UnitTests\obj\Debug\Moles\moles.args" exited with code -1005.
------ Build started: Project: SampleMvcApplication, Configuration: Debug Any CPU ------
  Microsoft Moles v0.94.51023.0 - http://research.microsoft.com/moles - .NET v4.0.30319
  Copyright (c) Microsoft Corporation 2007-2010. All rights reserved.

  00:00:00.00> moles
    Moles : info : metadata : loading C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.dll
    Moles : info : compilation : output assembly name: System.Web.WebPages.Moles
    Moles : info : code : found 71 types
    Moles : info : code : visibility: exported or assembly(System.Web.WebPages.Moles)
    00:00:00.34> code generation
      Moles : info : code : generating code at D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\obj\Debug\Moles\swwp\m.g.cs
      00:00:00.46> stubs generation
        Moles : info : code : generated 23 stub types
      00:00:00.86> moles generation
        Moles : info : code : generated 33 mole types
    00:00:01.70> compiling
      Moles : info : compilation : Moles assembly: D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\MolesAssemblies\System.Web.WebPages.Moles.dll
  00:00:02.43> moles generator 0 errors, 0 warnings
  SampleMvcApplication -> D:\Samples\Moles\SampleMVC\SampleMvcApplication\SampleMvcApplication\bin\SampleMvcApplication.dll
========== Build: 1 succeeded or up-to-date, 1 failed, 0 skipped ==========

Я изучил все темы, которые нашел, но ничего не помогло (я даже не нашел хорошего ответа и объяснения по этой проблеме.)

Это тоже не помогает (решение, исключающее проблемные типы) Невозможно использовать родинкимакет рамки MVC

Пожалуйста, сообщите.Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2012

Вам не нужно добавлять ссылку на структуру родинок напрямую.После создания тестового проекта и добавления ссылки на проект, который вы тестируете, щелкните правой кнопкой мыши по этой ссылке и выберите «Добавить сборку родинок».Это должно создать файл .moles в корне вашего тестового проекта.Теперь создайте свой тестовый проект, и все готово!

0 голосов
/ 05 октября 2011

Используете ли вы юнит-тесты?Если да, убедитесь, что у вас есть ссылка на MVC 3 dll в ваших модульных тестах.

...