Ошибка MSB4102: значение "" атрибута "Project" в элементе <Import> недопустимо. Параметр "путь" не может иметь нулевую длину. F#

Я получаю следующую ошибку при создании проекта в городе команды.

Тот же проект строится на локальной машине. Локальная машина имеет VS 2015 и F# 4.0.

Конфигурация моего проекта, как показано ниже.

<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />


    <Choose>
        <When Condition="'$(VisualStudioVersion)' == '11.0'">
          <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets')">
            <FSharpTargetsPath>$(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\4.0\Framework\v4.0\Microsoft.FSharp.Targets</FSharpTargetsPath>
          </PropertyGroup>
        </When>
        <Otherwise>
          <PropertyGroup Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets')">
            <FSharpTargetsPath>$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets</FSharpTargetsPath>
          </PropertyGroup>
        </Otherwise>
      </Choose>
      <Import Project="$(FSharpTargetsPath)" />

Это консольное приложение.

1 ответ

Решение

У меня была похожая проблема некоторое время назад, потому что я работал на локальном компьютере с правами администратора, но установщик Visual Studio установил переменные среды на user уровень, а не system уровень, который использует администратор. Таким образом, при компиляции в качестве администратора, FSharpTargetsPath не был правильно построен из переменных среды, таких как VisualStudioVersion,

Посмотрите на свой локальный компьютер, чтобы увидеть, для каких значений переменных среды установлены VisualStudioVersion на уровне, который вы успешно используете (Системный или Пользовательский), а также другие переменные, а затем убедитесь, что они установлены на соответствующем уровне на компьютере Team City.

Возможно, вы работаете как user на вашей локальной машине и System на машине Team City.

Подробности смотрите здесь: /questions/23178402/vneshnyaya-oshibka-sborki-vs2013-oshibka-msb4019-importirovannyij-proekt-put-ne-najden/23178417#23178417

Я надеюсь это имеет смысл.

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