2013-08-09 4 views
4

Я хочу построить мое решение VisualStudio 2012 (.sln) с помощью Mono, но он не может скомпилировать проекты, основанные на сборках VisualStudio. Например.Исключить .csproj из VisualStudio 2012.sln при использовании Mono Compiler

xbuild ServerResource.sln 
... 
HypervResourceControllerTest.cs(18,17): error CS0234: The type or namespace name `VisualStudio' does not exist in the namespace `Microsoft'. Are you missing an assembly reference? 

В этом случае HypervResourceControllerTest.cs (18,17) является ссылкой инструментов Visual Studio тест:

using Microsoft.VisualStudio.TestTools.UnitTesting; 

Поскольку мне не нужно среды тестирования для компиляции, я могу сказать, компилятор Mono для обхода конкретного проекта в .sln?

+0

Простой подход заключается в создании отдельного файла решения для Mono, чтобы вы могли игнорировать все Mono-несовместимые проекты. –

+0

Отдельные .sln-файлы для IDE и .sln для работы по сборке должны быть синхронизированы вручную. Это нарушает принципы проектирования базы данных. PS. ваш сайт является отличным источником информации. –

ответ

4

Создать новую конфигурацию, скажите xbuild использовать его:.

  1. В Visual Studio, создайте новую конфигурацию, исключающую проекты вы не заинтересованы в - (Build -> Configuration Manager .. ., выберите на платформе Active solution: выпадающий список)

  2. Используя Configuration Manager, удалите ненужные решения из конфигурации.

  3. Затем закройте VisualStudio, который сохранит изменения .sln и .csproj. .sln будет записывать, какие проекты связаны с конфигурацией. .csproj будет записывать настройки конфигурации, например, определяется ли TRACE или DEBUG.

  4. И наконец, при вызове xbuild присваивает имя вашей конфигурации свойству Конфигурация.

E.g.

xbuild /p:Configuration="NoUnitTests" ServerResource.sln 

выше будет строить проекты, связанные с конфигурацией NoUnitTests.