如何在构建时将Silverlight XAP复制到clientbin

时间:2008-10-16 02:56:18

标签: asp.net asp.net-mvc visual-studio silverlight silverlight-2.0

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

所以一切都很好,而Silverlight XAP正被复制到网站的ClientBin目录中。现在我决定启动一个新的ASP.NET MVC Web应用程序,最终将取代旧的(非MVC)Web站点。但我不能为我的生活弄清楚Visual Studio修改了什么以使XAP自动出现在网站的ClientBin构建中,以便我可以在我的MVC网站上重现它。

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

4 个答案:

答案 0 :(得分:35)

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

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

答案 1 :(得分:16)

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

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

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

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

答案 2 :(得分:4)

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

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

现在,在每次成功构建时,xap文件将自动复制。

答案 3 :(得分:2)

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