MSBuild neden c: \ Program Files (x86) \ MSBuild yerine Microsoft.Cpp.Default.props için C: \ dizinine bakıyor? (hata MSB4019)


124

Bir vc2010 projesi oluşturmak için msbuild'i çalıştırdığımda aşağıdaki hatayı alıyorum:

error 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.
  • msbuild c: \ Program Dosyası (x86) \ MSBuild konumunda
  • HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCTargetsPath $ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \ olarak ayarlandı
  • msbuild / verbosity çalıştırırken: iyi sistem MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath'i derlemenin başlangıcında Ortam olarak ayarladığında tanılama
  • MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath'in kabukta ortam değişkenleri olarak ayarlanması, bunların derleme başlangıcında Ortam olarak gösterilmesine neden olmaz

Denenen Düzeltmeler

  • .Net 4.5 kaldırıldı, .net 4.0 onarıldı
  • Sistem değişkenlerinde MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath ayarlayın.

MSBuildExtensionsPath32'nin düzgün ayarlanmadığı ve MSBuildExtensionsPath ayarının yardımcı olmadığı anlaşılıyor

SET MSBuildExtensionsPath="C:\Program Files\MSBuild"

Bu değişkenin uygun ayarını neyin engellediğine dair herhangi bir fikriniz varsa lütfen bana bildirin.


6
Harika! Her biri yalnızca belirli birkaç senaryoda çalışan yüzlerce geçici çözüm içeren bozuk bir Visual Studio yüklemesinden kaynaklanan bir hatayla ilgili başka bir soru ...
Florian Winter

Yanıtlar:


75

MSBuild'i çağıran komut satırı aracını kullanarak bir cocos2d-x uygulaması yayınlarken bu sorunu yaşadım. Win 7 64-bit, VS2013 express, cocos2d-x sürüm 3.3, .NET Framework 4.5 yüklü kullanıyorum.

Cocos.py yayınla komutunu çalıştırmadan önce aşağıdakileri ayarlayarak sorunu çözdüm:

SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120

Bu, oracledb düğüm paketini yüklememe yardımcı oldu. Ben talimatları takip community.oracle.com/docs/DOC-931127 ve hatta bu yüzden ben bu cevap sabit hata MSB4019 aldık.
Pedro Otero

1
PowerShell sürümü:[Environment]::SetEnvironmentVariable("VCTargetsPath", "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140", "Machine")
fiat

'V4.0' ile sona eren yol ile yardım edildi
Alexander

50

MS'in yasakladığı siparişi takip etmeyenler için ( Xv'nin cevabına bakın ) sorunu yine de çözebilirsiniz.

MSBuild, VCTargetsPathvarsayılan cpp özelliklerini bulmak için kullanır, ancak kayıt defterinde bu Dize Değeri bulunmadığından bunu yapamaz.

Dize Değerini Kontrol Edin

  • Regedit'i başlatın
  • Gezgini HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • Kontrol VCTargetsPathanahtarı. Değer = " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\" olmalıdır

Düzeltmek

  • Regedit Navigator'ı başlatmak için HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • Dize Değeri Ekle VCTargetsPath
  • Değeri " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\" olarak ayarlayın

Not: HKLMkısaltması HKEY_LOCAL_MACHINE.


12
Kayıt defteri girdisi zaten benim için oradaydı. Bunu geçmek için kayıt defterinde bu adı taşıyan bir ortam değişkeni tanımlamam gerekiyordu:set VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0
elmotec

12
benim için sadece bu setle çalıştıVCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v120
ygaradon

1
@ cmm-user HKLM, HKEY_LOCAL_MACHINEkesinlikle regedit'e sahip olmanız gerektiğini ifade eder
Michael Johnston

4
VCTargetsPath bir anahtar değil, bir Dize Değeridir!
John Smith

5
Benim için şimdi öyleydiset VCTargetsPath=c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
Daniel Grey

26

Son zamanlarda aynı problemi yaşadım ve farklı paketleri farklı sırayla kurduktan sonra çok karışık hale geliyordu. Sonra bu depoyu buldum - https://github.com/felixrieseberg/windows-build-tools

npm install --global windows-build-tools

Çoğu düğüm modülünü derlemek için gerekli olan Python & VS Build araçlarını kurar. Çok işe yaradı!


1
İyi bir şey ama ne yazık ki Azure için çalışmıyor.
Aleksey Kontsevich

6
Benim gibi bir sorunu olabilecekler için. Seçeneğe ihtiyacım vardı --production. npm install --global --production windows-build-tools Düğüm- gyp
eliotRosewater

15

Windows 10'da Visual Studio 2017 ve 2019 için

Buradaki yanıtların çoğu, Visual Studio'nun eski sürümleri için geçerlidir. Benim için işe yarayan şey, Visual Studio 2017 Community sürümünü kullanıyorsanız, adlı bir ortam değişkeni ayarlamak VCTargetsPathve ona bir değer vermekti

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets

Visual Studio 2019 Community sürümünü kullanıyorsanız,

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160

Buradaki diğer cevaplar bu değişkeni olarak ayarladı c:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140ancak görsel stüdyo kurulumumda MSBuild klasörümde Microsoft.Cpp adında bir klasör olmadığını fark ettim. Bu nedenle, bunu ve yukarıdaki yolun Visual Studio 2017'nin Topluluk sürümü için olduğunu aklınızda bulundurun.

Ayrıca, Visual Studio 2017 Community sürümünü kullanıyorsanız ortam değişkenlerinizdeki MSBuild yolunuzun MSBuild'in doğru sürümüne işaret ettiğinden emin olun,

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

Visual Studio 2019 Community sürümünü kullanıyorsanız,

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

1
Benimkinde VCTargetPath, C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ Common7 \ IDE \ VC \ VCTargets
Madura Pradeep

1
Bu Microsoft Visual Studio\2019\BuildToolsveya benzer varyasyonlar da olabilir - ve sanırım BuildTools ve Community yerine Professional ve Enterprise'a da sahip olabilirsiniz. vswhere.exe -products * -property installationPathtüm kombinasyonları arayacak ve kurulu tüm ürünlerin konumlarını döndürecektir.
MSalters

1
'vswhere.exe' is not recognized as an internal or external command, operable program or batch file.
Andrew Koster

13

Yükleme Windows SDK 7.1 için Microsoft Visual C ++ 2010 Service Pack 1 Derleyici Güncelleme sabitMSB4019 Ben Windows7 x64 üzerinde inşa başlamıştı hataları.

Bu güncellemenin benioku dosyası önerilen sıranın

  1. Visual Studio 2010
  2. Windows SDK 7.1
  3. Visual Studio 2010 SP1
  4. Windows SDK 7.1 için Visual C ++ 2010 SP1 Derleyici Güncelleştirmesi

Ah tamam. Bunun düzeltmesini buldum. Eksik kayıt defteri anahtarını ekleyin. Bu sırayı takip etmek için onu göndereceğim ve kurulum belgelerimi güncelleyeceğim
Peter Kahn

6

64 bit sistemlerde, MSBuild varsayılan olarak aşağıdaki özellikleri kullanır (burada C: SystemDrive'dır):

MSBuildExtensionsPath = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath64 = C:\Program Files\MSBuild

Olmazsa, yüklü olan bazı özel üçüncü taraf geçersiz kılma hedeflerine sahip olduğunuz veya MSBuild kurulumunuzun bozuk olduğu anlamına gelir.

Denenecek şeyler:

  • NET yüklemesini onarma
  • En son Visual Studio Hizmet Paketini uygulayın
  • MSBuildExtensionsPathManuel olarak yukarıdaki gibi ayarlayın ( x8664 bit makinelerde parçaya dikkat edin )

2
Teşekkürler ama bunlar hala ayarlanmadı: 1) .net 4.5'i onarın, 2) .net 4.5'i kaldırın ve 4.0'ı onarın. Bunları ortamda manuel olarak ayarlarsam da çalışmaz
Peter Kahn

5

Bu sorunu Visual Studio 2015 sürümünde yaşadım. Bir proje oluşturmak için cmake kullandığımda bu hata ortaya çıktı.

MSB4019 hatası: İçe aktarılan "D: \ Microsoft.Cpp.Default.props" projesi bulunamadı

Bir String ekleyerek düzelttim

VCTargetsPath

değerli

$ (MSBuildExtensionsPath32) \ Microsoft.Cpp \ v4.0 \ V140

kayıt yolunda

HKLM \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 14.0


Bitir bunu. Daha sonra cmd'yi yeniden başlattı, ancak sorunu çözmedi.
Dan

4

MSBuild, sıklıkla diğer araçlarla birlikte gelen bağımsız bir derleme aracında. Bilgisayarınıza .NET (eski sürümler), Visual Studio (daha yeni sürümler) ve hatta Team Foundation Build ile yüklenmiş olabilir.

MSBuild, onu kullanacak Visual Studio veya TFS sürümüyle ve ayrıca kaynak kodun derleneceği .NET sürümüyle eşleşen yapılandırma dosyalarına, derleyicilere vb. (Araç Seti) ihtiyaç duyar.

MSBuild'in nasıl kurulduğuna bağlı olarak, yapılandırma dosyaları bu yollardan birinde veya daha fazlasında olabilir.

  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120 \
  • C: \ Program Dosyaları (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \

Diğer yanıtlarda açıklandığı gibi, bir kayıt öğesi ve / veya çevresel değişken noktası Araç Seti yoluna gitmelidir.

  • HKLM \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0 altındaki VCTargetsPath anahtarı
  • VCTargetsPath ortam değişkeni.

Bazen, bir araç kurmak gibi bir işlem, kayıt defterini ve / veya çevresel değişkenleri yanlış ayarlanmış olarak bırakabilir. Diğer cevaplar, onları düzeltmenin tüm varyasyonlarıdır.

Eklemem gereken tek şey, sonda bıraktığımda çevresel değişkenin benim için çalışmadığıdır \


Bu! Tam VS2017 yüklemesi olmadan derleme aracımızda sorunlar yaşadık. "İş Yükünü" belirli bir VC araç setiyle yeniden yükledik - tek tek bileşenle değil ve doğru bir kurulum gerçekleştirdi. Visual Studio yükleyicisinin, özel bileşen seçimi yüklememiz sırasında VS2017 altına doğru araç seti v141'i koymadığından şüpheleniyoruz.
Lars Pellarin

Benim için bu, düzeltmeye yardımcı oldu - kullandığım bir komut dosyası, yanlış msbuild.exe dosyasını "faydalı bir şekilde" bulmak ve onu açıkça çağırmaktı.
Scovetta

4

MSBuild anahtarı için kayıt defteri girdileri benim için iyi çalıştı. Çalıştırdığınız MSBuild sürümüne bağlı olarak 64-bit veya 32-bit dallar için yapılması gerektiğini unutmamak önemlidir. MSBuild'in farklı sürümlerinde sorunlara neden olabileceği için ortam değişkenlerini kullanmanızı önermem.

Bu kayıt defteri dosyası, her iki durumda da şunları düzeltir:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"


3

DÜZENLEME: Bu, Visual Studio / MSBuild'in eski sürümleri için geçerlidir (özellikle MSVC2015?). Daha modern sürümlerle MSBuild, Visual Studio Build Tools 2019'a dahil edilmiştir ve derleyiciler farklı yerlerde bulunur ve farklı şekillerde algılanır.

Bunun nedeni, yüklü MSBuild araç setlerinin ve kayıt defteri ayarlarının uyuşmamasıdır. Aşağıdakilerden birini veya birkaçını yaparsanız olabilir:

  • Birden çok Visual Studio sürümünü yanlış sırada yükleyin
  • Visual Studio'nun bir veya daha fazla sürümünü kaldırın
  • Visual Studio yüklemesinde el ile kayıt defteri değişiklikleri veya değişiklikler yapın

Tek güvenli ve güvenilir çözüm, işletim sisteminizi yeniden yüklemektir. Projenizin derlenmesi için birden çok Visual Studio sürümüne ihtiyacı varsa, önce en eski sürümü yükleyin . Ardından, tek bir araç kullanarak oluşturabilmek için kodunuzu düzeltin, yoksa siz veya iş arkadaşlarınız kısa süre sonra yine aynı karmaşa içinde olacaksınız.

Bu sizin için bir seçenek değilse, önce okuyun https://stackoverflow.com/a/41786593/2279059 adresini , sorunu ve çeşitli "çözümlerin" gerçekte ne işe yaradığını daha iyi anlamak için . Ardından, Visual Studio sürümünüze ve kurulumunuza bağlı olarak, diğer yanıtlardan biri veya bunların varyasyonları sonunda yardımcı olabilir.

Birkaç ipucu daha:


2

Yükleme Microsoft Visual C ++, Windows SDK 7.1 için 2010 Service Pack 1 Derleyici Güncelleme benim için çalıştı. Ancak güncellemeyle ilgili sorunlar yaşadım çünkü zaten VS 2010 ve VS 2010 SP1 yüklü idi. Yukarıda Xv'de belirtildiği gibi, benioku.htm dosyası "Bilinen Sorunlar" bölümünde en yaygın yükleme sorunları için çözümler içerir. Bazı yüklemeler kayıt defterinize yazdığı için, readme.htm'deki talimatları izler ve her sorun giderme girişiminden sonra makinenizi yeniden başlatırdım.


2

Benim durumumda, VCTargetPathyol ile bir Ortam değişkeni ekledim

"C: \ Program Dosyaları (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ VC \ VCTargets \"

(Sondaki '\', proje çözüm dosyalarının "Microsoft cpp hedefleri" dosyasına bir referansı olduğundan çok önemlidir.

Ayrıca, Visual Studio 2017 MsBuild başlayarak Visual Studio içinde ortaya çıkınca - yani, PATH variableihtiyaçlar ile güncellenmesi

C: \ Program Dosyaları (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin

VCTargetPathMSBUILD PATHdeğişkenlerinin güncellenmesi ve oluşturulması hatayı düzeltti.


0

Bu hatayı, bulunan herhangi bir MSBuild.exe dosyası için C: \ Windows \ Microsoft.NET klasöründe yinelemeli olarak kazdıktan sonra MSBuild'i% PATH% üzerine yerleştirecek bir Yapı komut dosyası yazarak karşılaştım. Bulunan son isabet, yola koyulan dizindi. Beridir komut vururdu Framework64sonra klasörü Frameworkbenim yoluna koymak 64bit MSBuilds birini başlamıştı. Ben Visual Studio 2010 çözümü oluşturmak ve benim arama dizesini değiştirerek tasfiye çalışıyordu C:\Windows\Microsoft.NETiçin C:\Windows\Microsoft.NET\Frameworkbir 32bit MSBuild.exe ile rüzgar böylece. Şimdi çözüm dosyam oluşturuyor.


0

VCTargetsPath={c:\...}Hudson işime çevre değişkeni olarak ekledim .


0

Kayıt için dosya Microsoft.Cpp.Default.propsenv var değişkenini değiştirebilir VCTargetsPathve bu varlığın sonraki kullanımlarını yanlış yapabilir. Bu sorunu yaşadım ve ayarlayarak çözdüm VCTargetsPath10ve VCTargetsPath11aynı değereVCTargetsPath .

Bu, kullandığınız VS sürümüne göre uyarlanmalıdır.


0

Bunu bir VS2017 ortamında görüyorum. Derleme betiğim önce çağırıyor ve VsDevCmd.batbu sorunu çözmek için MSBuild'i çağırmadan önce ve VCTargetsPathsonra ortam değişkenini ayarlıyorum VsDevCmd:

set VCTargetsPath=%VCIDEInstallDir%VCTargets

0

Chris Gong'un VS2017 / 2019 hakkındaki yanıtına ek olarak (henüz yorum yapma iznim yok).

Tam Visual Studio yerine VS 2019 Derleme Araçları yüklüyse, dosya yolları biraz farklıdır. VCTargetsPath şu şekilde olmalıdır:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\

Ayrıca sonlandırıcı ters eğik çizgiyi de not edin - en azından benim durumumda gerekli (TFS2017, VS2019 Derleme araçları). PATH girişine de karşılık gelen değişiklik.


0

VS 17 için MSBuild ile aynı sorunla karşılaşıyordum

Bunu aşağıdaki adımları uygulayarak çözdüm:

  • Benim durumumda Microsoft.Cpp.Default.propsdosya adresinde bulunuyordu, C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets bu yüzden VCTragetsPathkayıt defterinde HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0değer ile dize oluşturdumC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets

  • Ayrıca Jenkins'imi yönetici kullanıcı olarak çalıştırdım

Bu benim sorunumu çözdü.


0

Sabit bir yol ayarlamak yerine, bunu önce derleme sonrası komut satırınızda deneyin:

SET VCTargetsPath=$(VCTargetsPath)

'$ (VCTargetsPath)' değişkeni, c # -sdk-projelerinde makro olarak gösterilmeyen ancak hala orada bulunan, c ++ ile ilgili bir görsel stüdyo-makro gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.