我正在編寫一個webservice,調用時應構建一個C#項目。我使用框架2引用,Microsoft.Buld.Engine和Microsoft.Build.Framework。如果你看 '<導入>' 部分.csproj的文件下,默認情況下它具有:Microsoft.Build.Engine錯誤(默認目標):目標GetFrameworkPaths:找不到.NET Framework SDK
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
,我則改爲:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
我的代碼來構建的csproj是:
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();
成功變量返回false,因爲構建faild。然後我檢查build.log文件,這是我收到的錯誤:
構建開始3/17/2010上午11時16分56秒 項目 「[Path_Of_Directory] \ ProjectName.csproj」 (默認目標):目標 GetFrameworkPaths:找不到 .NET Framework SDK。任務是 正在尋找通向.NET Framework SDK的路徑,位置 在註冊表項 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework的值中指定。 通過執行以下操作之一,您可能能夠解決問題 :1.) 安裝.NET Framework SDK。 2.) 手動將上述註冊表項設置爲 正確的位置。目標
我不明白爲什麼它不會建立。任何幫助都感激不盡。由於
你究竟有什麼不明白的?錯誤消息告訴你到底要檢查什麼。是你做的嗎? – TomTom 2010-03-17 09:23:34
是的,註冊表值是「C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727」,這與我通過的bin路徑完全相同,因此我的困境 – 2010-03-17 09:30:15