2016-10-31 1 views
1

Я пытаюсь построить 2 проекта F # в одном решении, используя MSBuild на двух разных компьютерах.F # build работает в Visual Studio, но сбой или неудачи в MSBuild в зависимости от компьютера

  • Компьютер 1 оборудован VS2015 без каких-либо переустановок или ремонта.
  • На компьютере 2 VS2015 получил умение после того, как установка Xamarin пошла плохо. VS2015 был отремонтирован (не помог), затем удалил оставшийся 4,5 ГБ остаточного мусора, затем снова удалил MS VisualStudioUninstaller, чтобы избавиться от остатков и, наконец, переустановить.

Это то, что происходит, когда я строю:

  • Компьютер 1: MSBuild работает.

  • Компьютер 2: MSBuild не работает с ошибкой The target "Build" does not exist in the project для одного проекта и The value "" of the "Project" attribute in element <Import> is invalid. Parameter "path" cannot have zero length для другого. Перед несчастным случаем Xamarin компьютер 2 без проблем создавал решение.

  • Строительство с Visual Studio работает на и компьютеров.

Проблема с компьютером 2 может быть решена путем удаления содержимого диска установить Windows, и переустановить все с нуля, но любое решение, которое менее жестоки будет приветствоваться.

Этот вопрос немного похож на существующий вопрос FSharp build fails in MSBuild, but works ok in Visual Studio, но в файле .fsproj уже используется TargetFSharpCoreVersion так, как предписывается принятый ответ.

+0

Вы прославились этим: http://stackoverflow.com/questions/2035414/target-build-does-not-exist-in-the-project-for-visual-studio? Если вы добавите это в свой файл .fsproj с правильным местоположением: ? Возможно, проверьте, указывает ли $ (MSBuildBinPath) на правильное место? –

+2

Установщики VS2015 ведут себя очень плохо на грязной машине. Даже на чистом (хорошо, я думал, что у меня скрипучий чистый), малейшая неудача создает хаос. Два с половиной дня в моей жизни я никогда не вернусь, просто из-за одного недостающего файла, он был недостаточно умен, чтобы вернуть его обратно. Следующая версия будет делать это по-другому, пальцы скрещены. Даже если вы устраните эту проблему, вы все равно не нашли бы исходную проблему. Nuke с орбиты, только способ быть уверенным. –

+0

@SveinTerjeGaup Это версия C# ответа F #, с которой я уже связан в вопросе. –

ответ

1

Похоже, что почти каждый проект GitHub F # с использованием FAKE (F # Make) может быть создан из командной строки с простой ванилью, но до сих пор я нашел одно исключение: мой собственный Mpir.NET. Это должно быть построено с помощью Командная строка разработчика для Visual Studio или Командная строка MSBuild для Visual Studio.

В запросах разработчика задается ряд переменных окружения. В этом конкретном случае переменная VisualStudioVersion делала разницу на компьютере 2 в вопросе. Как ни странно, на компьютере 1 не было такой переменной, но она все равно работала. Выяснить, почему именно, не стоит проблем. Просто используйте командную строку MSBuild.

Смежные вопросы