我正在使用 Microsoft.Build.BuildEngine 来构建许多项目。不使用 Silverlight 的项目正在正确构建,而使用 Silverlight 的项目没有构建。所有这些项目(Silverlight 和非 Silverlight)都通过 Visual Studio 2008 构建良好。我收到错误消息:
错误 CS0234:命名空间“System.Web.UI”中不存在类型或命名空间名称“SilverlightControls”(您是否缺少程序集引用?)
我已将 System.Web.Silverlight 添加到使用 Microsoft.Build.BuildEngine 进行构建的项目中。我还可以在进行构建的项目中看到该命名空间(因此看起来进行构建的项目确实可以访问 System.Web.UI)。
关于如何避免该错误的任何想法?
通过 VS2008 提高了构建的详细程度,并与从 Microsoft.Build.BuildEngine 创建的日志进行了比较。看起来 Microsoft.Build.BuildEngine 正在生产以下行:
考虑“c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Silverlight.dll”,但它不存在。
它不存在于那个位置,不是吗?实际上,它在许多位置寻找该 dll 却找不到它。我通过右键单击添加引用,添加引用,.Net,添加。我的机器上似乎没有 System.Web.Silverlight.dll(这很奇怪,因为该项目确实使用 VS2008 编译)。
比较两个日志的可能相关部分:Microsoft.Build.BuildEngine
对于搜索路径“{GAC}”。考虑“System.Web.Silverlight, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL”,在 GAC 中找不到。
视觉工作室 2008
System.Web.Silverlight,版本=2.0.5.0,文化=中性,PublicKeyToken=31bf3856ad364e35,处理器架构=MSIL
手动将 System.Web.Silverlight 添加到 Microsoft.Build.BuildEngine 正在寻找它的路径中(当我通过 VS2008 构建项目时从输出目录复制它)。这解决了这个问题,但我现在在解决方案的 Silverlight 组件上收到以下错误:
C:\Program Files\MSBuild\Microsoft\Silverlight \v2.0\Microsoft.Silverlight.Common.targets(95,9): 错误:未安装 Silverlight 2 SDK。
有任何想法吗?