Может ли MSBuild игнорировать ссылку на проект?(BuildProjectReferences не работает) - PullRequest
1 голос
/ 19 августа 2011

Я пытаюсь создать скрипт сборки для решения .NET, который состоит из нескольких проектов на c # и одного пользовательского проекта.Пользовательский проект может быть собран с помощью devenv, но msbuild его подавляет.

Я бы хотел, чтобы MSBuild игнорировал пользовательский проект, потому что я уже собираю его с помощью задачи Exec.Мне действительно нужно, чтобы MSBuild даже не открывал пользовательский файл .proj, потому что он находится в формате JSON и поэтому вызывает сбой MSBuild.

Параметр / BuildProjectReferences = false не работает.MSBuild все еще пытается прочитать пользовательский файл проекта.Есть ли способ обойти это?

Ответы [ 3 ]

2 голосов
/ 20 ноября 2011

Этот вопрос возник из-за проекта, который имел проект SilverFrost Fortran вместе с несколькими библиотеками классов c #.Решение будет компилироваться только с использованием devenv.Msbuild выдаст ошибку в проекте Fortran, потому что он не использует стандартный формат .csproj.

Даже при / BuildProjectReferences = false, msbuild попытается прочитать проект Fortran и выдаст ошибку.Обходной путь, который я обнаружил, заключался в том, чтобы обернуть задачу msbuild в задачу nant, которая выполняет следующее:

  1. Запускает компилятор командной строки Fortran
  2. Удаляет все ссылки на проект Fortran из других.Проекты csproj, использующие задачу xmlpoke
  3. Заменяет указанные ссылки прямой ссылкой dll на выходные данные компилятора Фортрана
  4. Вызывает Msbuild для модифицированного решения
0 голосов
/ 31 августа 2011

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

0 голосов
/ 19 августа 2011

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

...