24

我刚刚开始使用 Silverlight,最近在已建立的解决方案中添加了一个 Silverlight 项目。在这个特定场景中,我的解决方案包括一个现有的 ASP.NET 网站(不是应用程序),Visual Studio 很乐意将我的 Silverlight 应用程序集成到该网站中,我接受了。

所以一切都很好,Silverlight XAP 正在被复制到网站的 ClientBin 目录中。现在我决定启动一个新的 ASP.NET MVC Web 应用程序,它最终将取代旧的(非 MVC)网站。但是我一辈子都无法弄清楚 Visual Studio 修改了什么来让 XAP 在构建时自动出现在网站的 ClientBin 中,这样我就可以在我的 MVC 网站上重现它。

所以我的问题本质上是,让 Visual Studio 将 Silverlight 应用程序的 XAP 自动复制到新添加的 ASP.NET MVC Web 应用程序的手动步骤是什么?

4

4 回答 4

35

您可以通过 Web 项目的属性来执行此操作。Visual Studio 的 Silverlight 工具向名为“Silverlight Links”的 Web 项目的属性添加了一个新选项卡。

在此处添加对您的 Silverlight 项目的引用以及所需的文件夹,Visual Studio 将为您制作副本。

于 2008-10-16T09:04:50.550 回答
16

将 XAP 复制到 ClientBin 是一项 MSBuild 任务。如果您使用的是标准 ASP.NET 项目模板,则可以在 Silverlight Link 部分下找到它。

对于其他所有内容,您可能能够找出 MSBuild 任务的名称并将其添加到您的 ASP.NET MVC 项目中。更简单的解决方案可能是在 APS.NET 项目上使用自定义构建后事件来复制文件。

除了将 XAP 文件从 Silverlight 项目的 BIN 目录复制到 Web 应用程序的 ClientBin 之外,没有任何“魔法”发生。它甚至不必位于 ClientBin 目录中 - 您可以将其复制到任何目录或站点的根目录。

更新:最近发布的 ASP.NET MVC Beta 1 包括对 Silverlight 项目的支持,因此您可以将其链接到您的 ASP.NET MVC 应用程序,就像您对常规 ASP.NET 应用程序所做的那样。

于 2008-10-16T04:19:53.167 回答
4

转到 Silverlight 应用程序的属性页,选择 Build Events 选项卡,在 Post-Build events 命令行中输入以下行:

copy $(TargetDir)*.xap $(SolutionDir)<youar web solution folder name such as app.web>\ClientBin

现在开始,在每次成功构建时,都会自动复制 xap 文件。

于 2010-07-10T09:59:08.050 回答
2

这是一篇较旧的帖子,所以它可能已经改变了......在我的 Visual Studio 中的 web 项目下,有一个名为“Silverlight 应用程序”的选项卡。对于您导入到解决方案中的现有项目,那里有一个添加按钮,您可以添加它们并选择将 xap 放置在 ClientBin 或其他任何地方。不确定是否必须安装 SDK 才能拥有此选项卡。我已经安装了,所以你可能需要。我不做MVC,所以对于MVC项目可能会有所不同,我不知道。

于 2011-09-22T13:25:28.247 回答