无法在appharbor上构建silverlight应用程序

时间:2011-12-05 13:28:23

标签: silverlight appharbor

我在appharbor上构建silverlight项目时遇到了问题(遗漏了一些dll)。 我之前有过以下错误:

"error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets" was not found". 

这就是为什么我在csproj文件上评论1行:

"Import Project="$(MSBuildExtensionsPath)\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets""

现在我在建设过程中收到了新的错误。在这里你可以看看堆栈跟踪: http://pastebin.com/bKYkDzRa 有谁知道如何解决这个问题?

此致 雅罗

2 个答案:

答案 0 :(得分:4)

您需要将所需的dll添加到Lib文件夹,并将lib文件夹发布到AppHarbor站点。

Have a look at this example第24步解决了同样的问题:

  • 在Visual Studio中,在名为Lib的DemoApp.Web项目中创建一个Folder。此文件夹将包含Web应用程序所依赖的所有程序集,并且不是.NET Framework的一部分。通过将它们放入此文件夹并使用“复制到输出”标记它们,将在AppHarbor上部署和提供程序集。如果您不将程序集添加到此文件夹,它们将不会成为版本控制中文件的一部分,也不会上传到BitBucket和AppHarbor。

  • 将带有Hammock的zip文件中的DLL复制到Lib文件夹。

  • 在包含解决方案的文件夹中打开命令提示符。执行以下命令:subst S:DemoApp.Web \ Lib这将Lib文件夹映射到虚拟S:驱动器。这样做的原因是Visual Studio项目将包含dll的绝对路径,当源被下载到多台计算机时,这些路径将是不同的。该子网将解决这个问题。我甚至为我创建了一个小批处理文件,并将其放在解决方案文件夹中。

  • 在Visual Studio中,右键单击Lib文件夹,然后选择“添加”现有项目并将Hammock和JSON dll添加到项目中。确保将它们标记为“复制到输出”。 右键单击DemoApp.Web项目,然后选择“添加引用”。单击“浏览”并导航到S:驱动器并添加两个dll。

答案 1 :(得分:3)

您在上面显示的错误是因为构建服务器上未安装Expression Blend SDK。由于未安装,MSBuild无法找到Blend构建目标。我不确定这是AppHarbor支持或计划支持的内容,但我建议您与他们联系,看看他们是否可以为您安装此SDK。