“C: \ Microsoft.Cpp.Default.props” не знайдено


82

У мене є проект, створений у Visual Studio, 2013.

Файл проекту має такі властивості:

ToolsVersion = "12.0", PlatformToolset = v120.

У мене встановлені Visual Studio 2013 та Microsoft Build Tools 2015. Цей проект успішно будується за допомогою MSBuild 12.0. При спробі побудувати його за допомогою MSBuild 14.0 я отримую повідомлення про помилку

MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 

Наскільки я розумію, проблема в тому, що змінна VCTargetsPath не отримує обчислення. Якщо я вказав змінну VCTargetsPath перед збіркою (зі значенням C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), проблема вирішена.

Однак такий підхід не дуже зручний, якщо шлях відрізняється. Чи можна якось вирішити проблему більш оптимальним способом?

Ключ реєстру та його значення:

HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))

Після спроби побудувати його за допомогою MSBuild 14.0, як саме ви це робите? Ймовірно, вам слід спершу зателефонувати vcvars.bat (або еквівалент для інструментів побудови 2015) ..
stijn

Погодьтеся зі stijn, встановіть змінну шляху та середовища для збірок командного рядка через vcvars.bat і перевірте, чи він працює для вас. Для отримання додаткової інформації про встановлення змінних шляху та середовища для збірок
Zhanglong Wu - MSFT

Відповіді:


60

На вирішення цієї проблеми у мене пішло дві години, але я нарешті закінчив.

Наступне вирішило мою проблему:

  1. Запустіть це в командному рядку з підвищеними можливостями (адміністратор): npm install --global --production windows-build-tools . Якщо у вас немає npm, я рекомендую встановити його, інакше це не спрацює.
  2. Змініть власника в директорії встановлення (у моєму випадку C:\Program Files (x86)\MSBuild\14.0) на вашого користувача, а не на адміністратора. (властивості> Безпека> Додатково).

9
Дякую. Мені просто потрібно було (повторно) бігти npm install -g --production windows-build-tools.
Ден Еткінсон,

@Nic Szer, ти можеш пояснити мені другий крок? Я не можу це зрозуміти.
HarshitMadhav

@NicSzer у моєму випадку я бачу Власника: СИСТЕМА, що мені робити?
HarshitMadhav

@HarshitAgrawal потрібно змінити, кому належить папка, таким чином, що власником є ​​ваш користувач, а не СИСТЕМА
Nic Szerman,

@NicSzer дякую за відповідь. Я зробив це, але зараз отримую нові помилки. Це моя перша спроба запустити рідний проект реагування на Windows. Мені потрібна допомога. Чи можемо ми підключитися до чату stackoverflow?
HarshitMadhav

32

Нещодавно я переінсталював Visual studio 2017 і зіткнувся з цією проблемою під час спроби встановити "npm java". Виправлення для мене:

  1. встановити версію ms на 2017 рік: npm config set msvs_version 2017
  2. встановити змінну середовища VCTargetsPath на C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. запустити командну консоль як системний адміністратор

3
npm config set msvs_version 2017цей код врятував мої години. Дякую.
canmustu

@Alex ваш VCTargetsкаталог уже містив Microsoft.Cpp.Default.Props? У мене є каталог, але цей файл відсутній.
starscream_disco_party

@starscream_disco_party так, Microsoft.Cpp.Default.Props вже в моїй папці VCTargets
Олексій

23

Ці кроки вирішили мою проблему:

  1. Біжи npm install --global --production windows-build-tools
  2. Біжи npm install --save nan
  3. Встановіть VCTargetsPathзмінну середовища наC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

2
де знаходиться VCTargetsPath?
HarshitMadhav

Ідеальне рішення
Хаммад уль Хасан,

1
@HarshitAgrawal VCTargetsPath- це назва змінної середовища.
Емре Тапчі

Третій крок потрібен лише в моєму випадку.
Сергій

10

Для тих, хто наведена вище відповідь не працює, ось ще одне можливе рішення.

Навіть установка інструментів для побудови або VS 2015 для мене не спрацювала. Тому я спробував встановити нижче безпосередньо через PowerShell (як адміністратор)

https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1 Команда: choco встановити visualcpp-build-tools --version 14.0.25420.1

Після встановлення встановіть змінну середовища VCTargetsPath = C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140


Використання Chocolatey це вирішило для мене, я навіть не встановив змінну середовища, це вийшло нестандартно
Meir Gabay

9

Для тих, хто використовує VS 2019:

встановити VCTargetsPath = "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160"

Редагувати (вересень 2020 р.): Іноді для цього потрібна зворотна коса риса (як зазначено нижче у bmiller)


1
Це спрацювало для мене. Зверніть увагу, що мені також потрібна зворотна коса риса на шляху, інакше збірка не вдалася, шукаючи конкретні реквізити платформи в підпапці.
bmiller 02

1
Працював і для мене, хоча вам потрібно переконатися, що ви вказали правильну версію VS (у моєму випадку це була спільнота - "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VC \ v160 "
g0rski

5

Я вирішив це за допомогою:

  1. Встановіть VCTargetsPathзмінну середовища наC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. побудувати за допомогою адміністратора

1

Я не міг змусити це працювати з усіма пропозиціями на цій сторінці

Я знизив nodejs до 10.15, і він працював нормально

мабуть, не найкраща відповідь, але вона працює


0

Я спробував встановити npm та VCTargetsPath, все не працює. Остаточно вирішено після нього після оновлення Visual Studio до останньої версії.


0

Вирішено шляхом встановлення Visual Studio Express 2015 для Windows 10 .


Перехід від Express до Pro спричинив проблему в моєму випадку. Встановіть змінну середовища VCTargetsPath на C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140
Сергій

0

Я вирішив проблему, завантаживши рішення у VS 2019, замість того, щоб двічі клацнути ім'я рішення у Провіднику файлів.


0

Під час запуску MSBuild за межами Visual Studio 2019 (перенесено з 2012 року) у мене виникли такі проблеми. Я вирішив їх запустити цей MSBuild:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild"

(налаштуйте його на основі вашої версії VS та цільової архітектури) замість цієї:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

що я використовував, коли мав Visual Studio 2012.


-1

Обов’язково використовуйте --global з командою, щоб мати можливість використовувати цей пакет де завгодно. Це вирішує проблему для мене

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.