2010-07-16 26 views
10

Ho avuto un problema durante la migrazione a .net 4.0 che ha causato il seguente errore durante il tentativo di creare.File LC.exe non trovato durante la compilazione per .NET 4

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1917,9): 
    error MSB3086: Task could not find "LC.exe" using the SdkToolsPath "" or the 
    registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A". 

Make sure the SdkToolsPath is set and the tool exists in the correct processor 
specific location under the SdkToolsPath and that the Microsoft Windows SDK is 
installed 

External Program Failed: C:\windows\microsoft.net\framework\v4.0.30319\MSBuild.exe 
(return code was 1) 

L'ultima versione del Microsoft Windows SDK è installato sulla macchina, ma la versione è v7.1. Per risolvere il problema ho messo il seguente punto la chiave di registro a

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\InstallationFolder 
to C:\Program Files\Microsoft SDKs\Windows\v7.1\. 

Questo ha funzionato però mi sento un po 'sporco sulla punta della chiave di registro 7.0A per l'installazione 7.1. Qualcuno ha una soluzione migliore a questo problema?

+0

possibile duplicato di [MSBuild su TeamCity Server non riesce a trovare AL.exe] (http://stackoverflow.com/questions/2986440/msbuild-on-teamcity-server-cant-find-al-exe) –

+0

I ho appena incontrato lo stesso problema. Ci sono un sacco di work-around sul web, ma non riesco a trovare una soluzione. Sembrerebbe che quando si installa Windows SDK versione 7.1 dopo l'installazione di VS 2010, i percorsi appropriati non vengano aggiornati per puntare alla nuova directory. – JonnyBoats

risposta

3

Date un'occhiata a: Running MSBuild fails to read SDKToolsPath

In una delle risposte Simmo suggerito seting la versione di default del SDK per essere 7.1. La versione 7.1 di Windows SDK è più recente della versione fornita con Visual Studio 2010 (che è 7.0a). LC.exe è incluso con 7.1 e una volta che si utilizza WindowsSdkVer.exe per rendere 7.1 la versione predefinita, tutto funziona correttamente.

Due piccole stranezze però: 1) WindowsSdkVer.exe consente di scegliere da VS 2005 e VS 2008, ma non elenca VS 2010. Ho semplicemente impostare la versione di default per VS 2008 e ha funzionato nel 2010.

2) WindowsSdkVer.exe -versione: v7.1 non ha funzionato per me ma WindowsSdkVer.exe senza argomenti, ha portato un'interfaccia di Windows.

2

Ho appena avuto questo problema e che era perché il nostro server build usa VS 2010 per costruire e avevo aperto e modificato la mia soluzione in VS 2015.

intestazione del file .sln è passato da:

Microsoft Visual Studio Solution File, Format Version 11.00 
# Visual Studio 2010 

a

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 14 
VisualStudioVersion = 14.0.24720.0 
MinimumVisualStudioVersion = 10.0.40219.1 

a quanto pare questo è sufficiente a rendere TFS (2010 e l'utilizzo di visual Studio 2010) a voler cercare una versione successiva degli strumenti SDK (che non vengono installati, in questo caso v 8.0A).

L'impostazione dell'intestazione nel file * .sln nella versione VS 2010 ha risolto il problema.

Problemi correlati