5

我在 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 有人知道我该如何解决这个问题吗?

问候, 雅罗斯拉夫

4

2 回答 2

4

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

看一下解决相同问题的示例步骤 24:

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

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

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

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

于 2011-12-05T14:59:12.880 回答
3

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

于 2011-12-05T14:45:16.137 回答