Исключить.csproj из VisualStudio 2012 .sln при использовании Mono Compiler

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

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?

1 ответ

Решение

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

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

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

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

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

Например

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

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

Другие вопросы по тегам