[C#] Внешняя ошибка сборки VS2013 "ошибка MSB4019: импортированный проект <путь> не найден"



Answers

У меня тоже было это, и вы можете исправить это, установив версию инструментов в своем определении сборки.

Это очень легко сделать. Откройте определение сборки и перейдите на страницу « Процесс ». Затем в группе « 3. Дополнительно » у вас есть свойство « MSBuild Arguments ». Поместите параметр там со следующим синтаксисом

/p:VisualStudioVersion=12.0 

Если у вас больше параметров, отделите их пробелом, а не запятой.

Question

Я создаю проект через командную строку, а не внутри Visual Studio 2013. Заметьте, я обновил свой проект с Visual Studio 2012 до 2013 года. Проект строится в среде внутри IDE. Кроме того, я полностью удалил VS2012, перезагрузил и установил VS2013. Единственная версия Visual Studio, которая у меня есть, - 2013 Ultimate.

ValidateProjects:
    39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
    39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.

Вот две строки, о которых идет речь:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

Первоначальная вторая строка была v10.0, но я вручную изменил ее на v12.0.

$ (VSToolsPath) удлиняется от того, что я вижу в папке v11.0 (VS2012), которой, очевидно, больше нет. Путь должен был быть v12.0.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\

Я попытался указать VSToolsPath в таблице переменных среды системы, но внешняя сборка по-прежнему использует v11.0. Я попытался выполнить поиск в реестре и ничего не придумал.

К сожалению, я не вижу простого способа получить точную командную строку. Я использую инструмент построения.

Мысли?




Я получил эту ошибку, когда устанавливаю некоторые компоненты VS. К сожалению, ни один из этих ответов мне не помог. Я использую TFS для разработки команд, и у меня нет прав на редактирование определения сборки. Я решил эту проблему, удалив переменные среды, которые называются VS110COMNTOOLS и VS120COMNTOOLS . Я думаю, что он был установлен с моими VS-компонентами.




У меня также была такая же ошибка. Я сделал это, чтобы исправить это

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />

изменить на

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

и все сделано.




Если вы переносите Visual Studio 2012 на 2013 год, откройте файл проекта .csprorj с edior.
и проверьте элемент ToolsVersion элемента «Project».

Это значение 4.0
Вы делаете это до 12.0

  • Из

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0"
    
  • к

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="12.0"
    

Или, если вы создаете с помощью msbuild, просто укажите свойство VisualStudioVersion

msbuild /p: VisualStudioVersion = 12.0




Я только что получил ответ от Кинука, который дал мне link :

В принципе, мне нужно вызвать следующее перед запуском. Я предполагаю, что Visual Studio 2013 не будет автоматически регистрировать среду сначала, но 2012 сделал, или я сделал и забыл.

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86

Надеюсь, этот пост помогает кому-то другому.




Я обнаружил, что у меня отсутствует папка WebApplications на моем локальном ПК, не устанавливалась с Visual Studio 2017, как это было при использовании 2012 года.




У меня была эта проблема для наших целей FSharp (FSharpTargetsPath был пуст).

Многие из путей построены со ссылкой на версию VS.

По разным причинам наша сборка работает с системными привилегиями, а переменная среды «VisualStudioVersion» была установлена ​​(установщиком VS 2013) на уровне «пользователя» - что достаточно справедливо.

Убедитесь, что переменная окружения « VisualStudioVersion » установлена ​​на « 12.0 » на уровне (система или пользователь), на котором вы работаете.




Для решения проблемы нужно только одно: обновить TeamCity до версии 8.1.x или выше, потому что поддержка Visual Studio 2012/2013 и MSBuild Tools 2013 была представлена ​​только в TeamCity 8.1. После того, как вы обновили TeamCity, измените настройку версии MSBuild Tools на шаге сборки, и проблема исчезнет. Для получения дополнительной информации читайте здесь: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html




Я попробовал все вышеупомянутые решения и до сих пор не повезло. Я слышал, как люди устанавливали визуальную студию на своих серверах сборки, чтобы исправить ее, но у меня было всего 5 гб свободного места, поэтому я просто скопировал C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio на мой сервер сборки и назвал его днем , Начинал работать после этого, используя команду city 9.x и визуальную студию 2013.




У меня установлена ​​Visual Studio 2013. Это сработало для меня:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' != ''">12.0</VisualStudioVersion>`
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

Поэтому я изменил условие от == до != И значение от 10.0 до 12.0 .




Вы должны скопировать папку WebApplications из C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ в C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \






Links