J'écris un service Web qui, lorsqu'il est appelé, doit générer un projet C#. J'utilise la référence du framework 2, Microsoft.Buld.Engine et Microsoft.Build.Framework. Si vous regardez sous le fichier '<Importer>' section, par défaut, il a:Erreur Microsoft.Build.Engine (cibles par défaut): Cible GetFrameworkPaths: Impossible de localiser le SDK .NET Framework
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
que je puis changé pour:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Mon code pour construire le csproj est:
Engine buildEngine = new Engine(Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), @"Microsoft.NET\Framework\v2.0.50727"));
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=c:\temp\build.log";
buildEngine.RegisterLogger(logger);
bool success = buildEngine.BuildProjectFile([Path_Of_Directory]+ "ProjectName.csproj");
buildEngine.UnregisterAllLoggers();
La variable de succès renvoie un résultat faux car la génération échoue. Je puis vérifier le fichier build.log et c'est l'erreur que je reçois:
Construire commencé 3/17/2010 11:16:56 Projet "[Path_Of_Directory] \ ProjectName.csproj" (par défaut cibles): Cible GetFrameworkPaths: Impossible de localiser le SDK .NET Framework. La tâche est chercher le chemin vers le SDK .NET Framework à l'emplacement spécifié dans la SDKInstallRootv2.0 valeur de la clé de Registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework. Vous pouvez peut-être résoudre le problème en effectuant l'une des opérations suivantes: 1.) Installez le SDK .NET Framework. 2.) Définissez manuellement la clé de Registre ci-dessus sur l'emplacement correct. Cible
Je ne comprends pas pourquoi il ne sera pas construit. Toute aide sera très appréciée. Merci
Qu'est-ce que vous ne comprenez pas exactement? Le message d'erreur vous indique exactement ce qu'il faut vérifier en premier. As-tu fais ça? – TomTom
Oui, la valeur de registre est "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727", qui est exactement le même que le chemin de bacs que je traverse, d'où mon dilema –