Я строю проект через командную строку, а не в Visual Studio 2013 с. Обратите внимание, я обновил свой проект из Visual Studio 2012 на 2013. Проект строится в IDE. Кроме того, я полностью удалил в VS2012 во-первых, перезагрузился, и установил VS2013. Единственная версия Visual Studio, которая у меня стоит 2013 окончательный.
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" />
Оригинальный второй линии В10.0, но я вручную поменял, что на V12.0.
$(VSToolsPath) удлиняет от того, что я вижу на В11.0 (в VS2012) папку, которая, очевидно, не было. Путь должен быть до 12.0.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\
Я пробовал указав VSToolsPath в моей системе среды табличные переменные, но полезность внешних построить еще использует В11.0. Я попробовал поиск в реестре и ничего не придумал.
К сожалению, я не вижу простой способ, чтобы получить точную используется командная строка. Я использую инструмент построения.
Мысли?
У меня был тот же вопрос и найти более простое решение
Это связано с VS2012 для добавления в файл csproj:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolspath>
</PropertyGroup>
Вы можете безопасно удалить ту часть, и ваши решения будут строить.
как Sielu указывал Вы должны убедиться, что .файл proj начать с<проект значение toolsversion="и 12"` в противном случае в следующий раз, когда вы открываете проект с помощью Visual Studio 2010 и он будет снова добавить удаленный узел.
В противном случае, если вам нужно использовать веб-развертывание или вы используете сборки сервера, указанные выше решения не получится, но можно указать VisualStudioVersion
недвижимость в скрипт сборки:
msbuild myproject.csproj /p:VisualStudioVersion=12.0
или редактировать определение построения:
У меня тоже это, и вы можете это исправить, установив версию инструментов в определении сборки.
Это очень легко сделать. Открытия вашего определения построения и поехать в "Процесс" на страницы. Затем в графе "3. Расширенный" в группу у вас есть недвижимость называемые "Аргументы MSBuildи". Место есть параметр со следующим синтаксисом
/p:VisualStudioVersion=12.0
Если у вас есть несколько параметров, они разделяются пробелом, а не запятой.
Это тесно связано, но может или не может исправить ОПС конкретному вопросу. В моем случае я пытаюсь автоматизировать развертывание сайте Azure с помощью VS2013. Построение и развертывание через ВС работает, однако с помощью MSBuild показал аналогичную погрешность около в "цели" по. Получается MSBuild-это разные под VS2013, и теперь часть против и не .Чистая рамки (см. http://timrayburn.net/blog/visual-studio-2013-and-msbuild/). В принципе, использовать правильные версии MSBuild:
СТАРЫЙ, В VS2012
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
НОВЫЙ, VS2013
C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe
Новые, VS2015
C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe
Новее еще, VS2017 (не в полной мере тестирования, но обнаружил, что они'вэ переехал вещи вокруг немного)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe
Я только что получил ответ от Kinook, который дал мне ссылка:
В принципе, мне нужно вызывать следующие до дома. Я думаю, в Visual Studio 2013 не автоматически, зарегистрируйтесь окружающей среды, но в 2012 году, или я сделал и забыл.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
Надеюсь, этот пост поможет кому-то еще.
giammin'ный раствор является частично неверным. Вы не удалить всю группу свойств от вашего решения. Если вы делаете, в MSBuild'ы "и DeployTarget=упаковки" - а Функция перестанет работать. Эта функция основывается на том, что "VSToolsPath на"]3 устанавливаются.
<PropertyGroup>
<!-- VisualStudioVersion is incompatible with later versions of Visual Studio. Removing. -->
<!-- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> -->
<!-- VSToolsPath is required by MSBuild for features like "DeployTarget=Package" -->
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolspath>
</PropertyGroup>
...
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
Я имел эту проблему для наших целей FSharp (FSharpTargetsPath был пуст).
Многие дорожки строятся со ссылкой на против версии.
По различным причинам, наша сборка работает с правами системы, а переменная среды "и VisualStudioVersion” был только комплект (установщик по сравнению с 2013 годом) в графе "пользователей" на уровне который является достаточно справедливой.
Убедитесь, что "VisualStudioVersion в
" переменная окружения установлена, чтобы "12.0 в
" на уровне (системы или пользователя), что вы работаете на.
Если вы перенести в Visual Studio 2012 на 2013, затем откройте *.файл проекта csprorj с редактирования. <БР/> и проверить 'проект' тег'ы toolsversion с элементом.<БР/>
Что'значение S 4.0 <БР/> Вы делаете это до 12,0
От
<?XML-версия="и" и что quot кодировка="в кодировке UTF-8&;?&1.0 ГТ; <проект значение toolsversion="от 4.0 и"
К
<?XML-версия="и" и что quot кодировка="в кодировке UTF-8&;?&1.0 ГТ; <проект значение toolsversion=то"12.0"и
Или если вы построить с помощью MSBuild, то просто указать собственность VisualStudioVersion
в MSBuild /p:VisualStudioVersion=12.0
У меня были похожие проблемы. Все предложенные решения просто обойти эту проблему, но не решая источником ошибок. решение @giammin не следует применять, если вы используете TFS сборки сервера так как он просто разбился опубликовать функциональность. решение @cat5dev - решает проблему, но не решают источник.
Я почти уверен, что вы используете шаблон процесса сборки для VS2012, как
ReleaseDefaultTemplate.11.1.XAML или шаблоне defaulttemplate.11.1.язык XAML
эти шаблоны сборки были сделаны для VS2012 и $(VisualStudioVersion) значение 11.0
Вы следует использовать шаблон процесса построения для VS2013 `ReleaseTfvcTemplate.12.XAML или TfvcTemplate.12.язык XAML, который имеет $(VisualStudioVersion) набор для 12.0
Это работает без каких-либо изменений в файл проекта.
Я тоже была такая же ошибка .. Я сделал это исправить
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" />
изменение
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
и это'ы сделали.
В моем случае я просто комментарий ниже линии открытия .файл csproj и сделал свое дело
.в <!-- <импорт проекта=то"..\PRPJECTNAME.цели и" /> -->
Мои проблемы могут быть разные, но я сюда приплел, но это может помочь кому-то.
Я выбрал один веб-проект от моего решения, и попробуйте его открыть в одиночку проект, который изначально был вопрос сделав, после выше, черт возьми я смог решить проблему.
У меня есть Visual Studio, которая установлена 2013. Этот работал для меня:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' != ''">12.0</VisualStudioVersion>`
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolspath>
</PropertyGroup>
Поэтому я'вэ изменил условия С ==
и !=
и ценность от 10.0 до 12.0`.
Я был с помощью программы внешней сборки. Думаю, что-то вроде муравьев, если я правильно понимаю продукт, только коммерческая версия. Мне пришлось обратиться к производителю за ответ.
Как выясняется, существует глобальный макрос в проекте, DEVSTUDIO_NET_DIR. Мне пришлось изменить путь .Сетка есть. Они перечисляют различные Visual Studio версий как "действия", который через меня, но все дороги ведут обратно к одной глобальной переменной за кулисами. Мне бы список, что в качестве дефекта от товара, будь моя воля, если я что-то отсутствует в моем понимании. Исправляя путь, там Исправлена проблема сборки.
В моем случае среды разработки является VS2013 и я с помощью TFS 2010. Сборка была целенаправленной для .Чистая 4.5.1. Я настраивал автоматическое построение ИЦ. всякий раз, когда я пробовал обходные пути, упомянутые выше, как удаление группы свойства полностью или заменив несколько строчек и т. д. моя сборка происходило в TFS, но мои публикации в Azure используется для не с 'средства msdeploy' а иногда и некоторые другие ошибки. Я не сумел достигнуть обе одновременно.
Так, Наконец, я должен был передавать аргументы MSBuild, чтобы решить проблему.
Гото редактировать определение построения > процесс > 3. Расширенный > Аргументы MSBuild (значение) /p:VisualStudioVersion=12.0
Он работал для меня.
В моем случае я использую неверную версию MSBuild.exe
.
Версия, которую вы должны использовать, зависит от версии Visual Studio вы использовали для создания вашего проекта. В моем случае мне нужен 14.0 (использование визуальной студии 2015).
Это было найдено по адресу:
C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe
Вы можете посмотреть в разделе:
C:\Program Files (x86)\MSBuild
Найти другие версии.
вы найдете
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets
в csproj-файл, для которого эта ошибка появляется. Просто удалить это из csproj и потом строить.
Только одно нужно сделать для решения проблемы: обновить TeamCity до версии 8.1.X или выше, потому что поддержка Visual студии 2012/2013 и инструментов MSBuild в 2013 был принят только в TeamCity 8.1. Как только вы'вэ обновить ваш TeamCity изменения в MSBuild Tools версии устанавливать в свою сборку шаг, соответственно и проблема исчезнет. Подробнее читайте здесь: http://blog.turlov.com/2014/07/upgrade-teamcity-to-enable-support-for.html
Меня - ничего не помогало в изменении В11.0 значение переменной VisualStudioVersion до V10.0. Изменение переменной .файл csproj не'т. Установив его через команд Промт не'т. И т. д...
В итоге скопировав мою локальную папку этой конкретной версии (В11.0) на мой сервер сборку.
Я попробовал все вышеперечисленные решения и до сих пор не повезло. Я слышал, как люди установки Visual Studio на их сервера, чтобы исправить это, но у меня было только 5 ГБ свободного пространства, поэтому я просто скопировал файлы C:\Program (для x86)\MSBuild в папке\Microsoft\VisualStudio на моем сервере построить и назвал это день. Начал работать после этого, используя команды города 9.х и Visual Studio 2013 с.