2011-12-05 41 views
5

我在构建appharbor上的silverlight项目时遇到了问题(某些dll被忽略)。前 我以下错误:无法在appharbor上构建silverlight应用程序

"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 有谁知道我可以如何解决这个问题?

问候, 雅罗斯拉夫

回答

4

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

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

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

  • 将zip从Hammock中复制到Lib文件夹。

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

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

+0

嗯,我添加的文件到LibFolder和更新的参考项目,但他们仍然参照已安装的DLL(C:\ Program Files文件(x86)的\参考大会\微软\框架\ Silverlight的\ V4.0 \ System.Windows例如.Browser.dll)。 –

+1

您必须删除引用并通过指向Lib文件夹中本地复制的dll再次添加引用。为了获得最佳效果,建立一个虚拟驱动器S:使用指向Lib文件夹的'subst'并且引用'S:\ my.dll'这样,只要您正确设置了S驱动器,您就可以将项目移动到任意位置。 –

+0

是的,我删除并从Lib文件夹中添加,但他们仍然指向程序文件。真奇怪... –

3

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

相关问题