“C: \ Microsoft.Cpp.Default.props” không được tìm thấy


81

Tôi có một dự án được tạo trong Visual Studio, 2013.

Tệp dự án có các thuộc tính sau:

ToolsVersion = "12.0", PlatformToolset = v120.

Tôi đã cài đặt Visual Studio 2013 và Microsoft Build Tools 2015. Dự án này được xây dựng thành công bằng MSBuild 12.0. Khi cố gắng xây dựng nó bằng MSBuild 14.0, tôi gặp lỗi

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. 

Theo tôi hiểu, vấn đề là biến VCTargetsPath không được đánh giá. Nếu tôi chỉ định biến VCTargetsPath trước bản dựng (với giá trị C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), vấn đề sẽ được giải quyết.

Tuy nhiên, cách làm này không thuận tiện lắm trong trường hợp đường đi khác nhau. Có thể bằng cách nào đó giải quyết vấn đề một cách tối ưu hơn?

Khóa đăng ký và giá trị của nó:

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

Sau khi cố gắng xây dựng nó với MSBuild 14.0, chính xác thì bạn làm như thế nào? Bạn có lẽ nên gọi vcvars.bat (hoặc tương đương cho công cụ xây dựng năm 2015) đầu tiên ..
Stijn

Đồng ý với stijn, vui lòng đặt Biến đường dẫn và môi trường cho Bản dựng dòng lệnh qua vcvars.bat và kiểm tra xem nó có phù hợp với bạn không. Để biết thêm thông tin về cách đặt Biến đường dẫn và Môi trường cho Bản dựng dòng lệnh, vui lòng tham khảo: msdn.microsoft.com/en-us/library/f2ccy3wt.aspx
Zhanglong Wu - MSFT

Câu trả lời:


61

Tôi đã mất hai giờ để khắc phục sự cố này, nhưng cuối cùng tôi đã hoàn thành.

Phần sau đã giải quyết được vấn đề của tôi:

  1. Chạy trên một lệnh nâng lên nhanh chóng (admin): npm install --global --production windows-build-tools. Nếu bạn không có npm, tôi khuyên bạn nên cài đặt nó, nếu không điều này sẽ không hoạt động.
  2. Thay đổi quyền sở hữu trong cài đặt dir (trong trường hợp của tôi C:\Program Files (x86)\MSBuild\14.0) thành người dùng của bạn, thay vì quản trị viên. (thuộc tính> Bảo mật> Nâng cao).

9
Cảm ơn bạn. Tôi chỉ cần (lại) chạy npm install -g --production windows-build-tools.
Dan Atkinson

@Nic Szer bạn có thể giải thích cho tôi bước thứ hai được không? Tôi không thể hiểu nó.
Harshit Agrawal

@NicSzer trong trường hợp của tôi, tôi thấy Chủ sở hữu: SYSTEM tôi nên làm gì?
Harshit Agrawal

Bạn @HarshitAgrawal cần phải thay đổi người sở hữu thư mục mà người dùng của bạn là chủ sở hữu, không HỆ THỐNG
Nic Szerman

@NicSzer cảm ơn bạn đã trả lời. Tôi đã làm điều đó nhưng nhận được lỗi mới bây giờ. Đây là lần đầu tiên tôi cố gắng chạy dự án gốc phản ứng trên windows. Tôi cần trợ giúp Chúng ta có thể kết nối trên chatroom của stackoverflow không?
Harshit Agrawal

30

Gần đây tôi đã cài đặt lại Visual studio 2017 và gặp sự cố này khi cố gắng cài đặt "npm java". Cách khắc phục cho tôi là:

  1. đặt phiên bản ms thành 2017: npm config set msvs_version 2017
  2. đặt biến môi trường VCTargetsPath thành C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. chạy bảng điều khiển lệnh với tư cách quản trị viên hệ thống

3
npm config set msvs_version 2017mã này đã tiết kiệm giờ của tôi. Cảm ơn.
canmustu

@Alex đã có VCTargetsthư mục của bạn chưa Microsoft.Cpp.Default.Props? Tôi có thư mục nhưng tệp đó bị thiếu.
starscream_disco_party

@starscream_disco_party vâng, Microsoft.Cpp.Default.Props đã có trong thư mục VCTargets của tôi
Alex

22

Các bước này đã giải quyết được vấn đề của tôi:

  1. Chạy npm install --global --production windows-build-tools
  2. Chạy npm install --save nan
  3. Đặt VCTargetsPathbiến môi trường thànhC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

2
VCTargetsPath nằm ở đâu?
Harshit Agrawal

Giải pháp hoàn hảo
Hammad ul Hasan

1
@HarshitAgrawal VCTargetsPathlà tên của biến môi trường.
Emre Tapcı

Bước thứ 3 chỉ cần thiết trong trường hợp của tôi.
Sergei

10

Đối với những câu trả lời trên không hoạt động, đây là một giải pháp khả thi khác để xem xét.

Ngay cả việc cài đặt các công cụ xây dựng hoặc VS 2015 cũng không hoạt động với tôi. Vì vậy, tôi đã thử cài đặt bên dưới trực tiếp thông qua PowerShell (với tư cách là quản trị viên)

https://chocolaty.org/packages/visualcpp-build-tools/14.0.25420.1 Lệnh: choco install visualcpp-build-tools --version 14.0.25420.1

Sau khi cài đặt này, hãy đặt một biến môi trường VCTargetsPath = C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140


Sử dụng Chocolatey đã giải quyết nó cho tôi, tôi thậm chí còn không đặt biến môi trường, nó hoạt động hiệu quả
Meir Gabay

9

Đối với những người sử dụng VS 2019:

set VCTargetsPath = "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160"

Chỉnh sửa (tháng 9 năm 2020): Đôi khi nó yêu cầu dấu gạch chéo ngược ở cuối (như bmiller đề cập bên dưới)


1
Điều này đã làm việc cho tôi. Lưu ý rằng tôi cũng yêu cầu dấu gạch chéo ngược ở cuối trên đường dẫn, nếu không quá trình xây dựng không thành công khi tìm kiếm các đạo cụ nền tảng cụ thể trong một thư mục con.
bmiller

Cũng phù hợp với tôi, mặc dù bạn cần đảm bảo rằng bạn đã chỉ định phiên bản VS phù hợp (trong trường hợp của tôi, đó là Cộng đồng - "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VC \ v160 "
g0rski

5

Tôi đã giải quyết vấn đề này bằng cách:

  1. Đặt VCTargetsPathbiến môi trường thànhC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. xây dựng bằng quản trị viên

0

Tôi đã thử cài đặt npm và VCTargetsPath, tất cả đều không hoạt động. Cuối cùng đã được giải quyết sau khi nâng cấp visual studio lên phiên bản mới nhất.


0

Giải quyết bằng cách cài đặt Visual Studio Express 2015 cho Windows 10 .


Chuyển từ Express sang Pro đã gây ra sự cố trong trường hợp của tôi. Đặt biến môi trường VCTargetsPath thành C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140
Sergei

0

Tôi không thể làm cho nó hoạt động với tất cả các đề xuất trên trang này

Tôi đã hạ cấp nodejs xuống 10.15 và nó hoạt động tốt

có lẽ không phải là câu trả lời hay nhất nhưng nó hoạt động


0

Tôi đã giải quyết vấn đề bằng cách tải giải pháp trong VS 2019 thay vì nhấp đúp vào tên giải pháp trong File Explorer.


0

Khi chạy MSBuild bên ngoài Visual Studio 2019 (được di chuyển từ năm 2012), tôi đã gặp các loại sự cố này. Tôi đã giải quyết chúng bằng cách chạy MSBuild này:

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

(tùy chỉnh nó dựa trên phiên bản VS và kiến ​​trúc mục tiêu của bạn) thay vì cái này:

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

mà tôi đã sử dụng khi có Visual Studio 2012.


-1

Đảm bảo sử dụng --global bằng lệnh để có thể sử dụng gói này ở mọi nơi. Điều này giải quyết vấn đề cho tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.