【发布时间】:2010-03-17 09:21:05
【问题描述】:
我正在编写一个 web 服务,调用它时应该构建一个 C# 项目。我正在使用框架 2 参考,Microsoft.Buld.Engine 和 Microsoft.Build.Framework。如果您查看“
<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();
success 变量返回 false,因为构建失败。然后我检查 build.log 文件,这是我收到的错误:
构建于 2010 年 3 月 17 日上午 11:16:56 开始 项目 “[Path_Of_Directory]\ProjectName.csproj” (默认目标):目标 GetFrameworkPaths:找不到 .NET 框架 SDK。任务是 寻找 .NET 的路径 所在位置的框架 SDK SDKInstallRootv2.0中指定 注册表项的值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework。 你或许能解决问题 通过执行以下操作之一:1.) 安装 .NET Framework SDK。 2.) 手动将上述注册表项设置为 正确的位置。目标
我不明白为什么它不会构建。任何帮助都感激不尽。谢谢
【问题讨论】:
-
你到底有什么不明白的?错误消息会准确告诉您首先要检查的内容。你这样做了吗?
-
是的,注册表值是“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”,和我经过的bin路径一模一样,所以进退两难跨度>
标签: c# .net msbuild msbuild-buildengine