2009-12-02 7 views
1

В настоящее время я получаю сообщение об ошибке, пытающееся разрешить мой класс IDataAccess.Конфигурация Unity и то же собрание

Значение свойства 'type' не может быть проанализировано. Ошибка: Не удалось загрузить файл или сборку «TestProject» или одну из его зависимостей. Система не может найти указанный файл. (C: \ Source \ TestIoC \ src \ TestIoC \ TestProject \ bin \ Debug \ TestProject.vshost.exe.config строка 14)

Это находится в проекте приложения WPF.

Каков правильный синтаксис для ссылки на сборку, в которой вы сейчас находитесь? Есть ли способ сделать это? Я знаю, что в более крупном решении я бы вытаскивал типы из отдельных сборок, чтобы это не было проблемой. Но каков правильный способ сделать это для небольшого автономного тестового проекта. Примечание. Меня интересует только конфигурация XML в это время, а не C# (в коде).

UPDATE: Просмотреть все комментарии

Мой XML конфигурации:

<configuration> 
    <configSections> 
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" /> 
    </configSections> 
    <unity> 
    <typeAliases> 
     <!-- Lifetime manager types --> 
     <typeAlias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" /> 
     <typeAlias alias="external" type="Microsoft.Practices.Unity.ExternallyControlledLifetimeManager, Microsoft.Practices.Unity" /> 
     <typeAlias alias="IDataAccess" type="TestProject.IDataAccess, TestProject" /> 
     <typeAlias alias="DataAccess" type="TestProject.DataAccess, TestProject" /> 
    </typeAliases> 
    <containers> 
     <container name="Services"> 
     <types> 
      <type type="IDataAccess" mapTo="DataAccess" /> 
     </types> 
     </container> 
    </containers> 
    </unity> 
</configuration> 

ответ

0

Это выглядит хорошо. Вы уверены, что имя вашей сборки верное? Проверьте предпочтения проекта, чтобы убедиться, что имя вашего узла правильно:

  1. правой кнопкой мыши проект и выберите Свойства
  2. Нажмите на вкладку приложений на левой
  3. Посмотрите на значении «Ассамблеи Имя ".

Иногда, если вы переименовали проект, это поле по-прежнему будет старым.

Возможно, это не проблема, но это простейшая вещь для проверки. Если вы обнаружите, что это не проблема, ответьте на это, и я опубликую любые другие идеи, которые у меня есть.

Кроме того, вы можете рассмотреть возможность размещения своего образца в виде .zip-файла, чтобы мы могли взглянуть на него.

+0

Одной из проблем является проект приложения TestProject, но когда Visual Studio запускает его в debug, он запускает его как TestProject. vhost.exe. Я добавил vhost в имя в файле XML, и это не помогло. – BuddyJoe

+0

Я не могу загрузить образец, потому что для того, чтобы не быть парализованным этой проблемой, я разделил код на две сборки, чтобы я мог продолжать двигаться вперед. Один проект библиотеки классов и один проект WPF. – BuddyJoe

+0

Имя библиотеки DLL и название сборки не имеют ничего общего друг с другом. Вот почему я попросил вас допросить имя собрания. –

0

У меня была такая же проблема. это работает для меня: Поверните «Скопировать местный» в true в свойствах Microsoft.Practices.Unity. Вы также должны добавить ссылку на Microsoft.Practices.ObjectBuilder2 (Microsoft.Practices.Unity зависит от него)