Невозможно построить тестовый проект NUnit под Mono и Linux - PullRequest
1 голос
/ 02 февраля 2011

У меня есть комплексное решение (разработанное под Windows, развернутое под GNU \ Linux) с несколькими проектами модульного тестирования с использованием NUnit 2.9.3.

Вот ссылка с проекта:

<Reference Include="nunit.framework, Version=2.9.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\Program Files\NUnit 2.9.3\bin\net-4.0\nunit.framework.dll</HintPath>
</Reference>

Я скачал и собрал NUnit 2.9.3 из source :

$ xbuild solutions/MonoDevelop/NUnit.Framework.sln /p:Configuration=Release

и установлен в GAC:

$ gacutil /i solutions/MonoDevelop/bin/Release/nunit.framework.dll

$ gacutil /l nunit.framework
The following assemblies are installed into the GAC:
nunit.framework, Version=2.9.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
Number of items = 1

и удаленная локальная установка моно nunit:

$ rm /usr/lib/mono/2.0/nunit*
$ rm /usr/lib/mono/4.0/nunit*

но когда я пытаюсь построить свое решение:

$ xbuild MySolution.sln | grep error

: error CS0006: Metadata file `/usr/lib/mono/2.0/nunit.framework.dll' could not be found

Что я не прав?

Ответы [ 3 ]

4 голосов
/ 03 февраля 2011

Инструменты сборки обычно не разрешают сборки из GAC (за исключением, возможно, в крайнем случае). На .NET у них они "сборочные папки" прописаны в реестре. На Mono они используют "pkgconfig". Возможно, вы удалили сборки nunit, но вы не удалили или не исправили файл pkgconfig («pc»), который сообщает xbuild и MonoDevelop, где найти dll.

Такого рода вещи - плохая идея изменять вещи, установленные пакетами. Вам следует либо удалить пакет должным образом, либо использовать соответствующие переменные среды для переопределения упакованного содержимого.

В этом случае я бы предложил вам создать файл pc для ваших новых сборок nunit и поместить его в каталог / usr / local / lib / pkgconfig (/ usr / local - это префикс для установки материалов, которые вы собираете из исходного кода) ), или поместите его где-нибудь еще и включите его в переменную окружения PKG_CONFIG_PATH.

Смотри также:

А некоторые общие сведения о настройке сред Mono см .:

2 голосов
/ 03 сентября 2012

Параметр / pkg моно-компилятора работал нормально для меня ...

dmcs test.cs /r:System.Configuration.dll /r:System.dll /pkg:nunit

FWIW, я установил nunit, используя менеджер пакетов apt-get (в Ubuntu) ...

sudo apt-get install nunit
2 голосов
/ 03 февраля 2011

Я попытаюсь скопировать NUnit 2.9.3 в папку с исходными файлами, например (папка решения) \ lib. Затем добавьте эту ссылку локально и убедитесь, что тег соответствует этому локальному пути.

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

...