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

无法在appharbor上构建silverlight应用程序,silverlight,appharbor,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文件中注

我在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""
现在我在构建过程中收到了新的错误。在这里,您可以查看堆栈跟踪: 有人知道我怎么解决这个问题吗

问候,,
Yaroslav

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

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

步骤24解决了相同的问题:

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

将DLL从带吊床的zip复制到Lib文件夹

在包含解决方案的文件夹中打开命令提示符。执行以下命令:subst S:DemoApp.Web\Lib这会将Lib文件夹映射到虚拟S:drive。这样做的原因是VisualStudio项目将包含指向dll的绝对路径,并且当源下载到多台计算机时,这些路径将不同。subst会解决这个问题。我甚至创建了一个小的批处理文件来完成这项工作,并将其放在解决方案文件夹中

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


Hmm我将文件添加到LibFolder并更新project上的引用,但它们仍然引用已安装的dllsC:\Program files x86\reference Assembly\Microsoft\Framework\Silverlight\v4.0\System.Windows.Browser.dll。例如,您必须删除引用,然后通过指向Lib文件夹中本地复制的dll再次添加引用。为了获得最佳效果,制作一个虚拟驱动器S:使用指向Lib文件夹并引用S:\my.dll的subst,这样,只要正确设置了S驱动器,就可以将项目移动到任意位置。是的,我从Lib文件夹中删除并添加了,但它们仍然指向程序文件。真奇怪。。。