我刚刚开始使用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应用程序的手动步骤是什么?
您可以通过Web项目的属性执行此操作.Visual Studio的Silverlight工具为名为"Silverlight Links"的Web项目的属性添加了一个新选项卡.
在这里添加对Silverlight项目的引用,以及您想要的文件夹,visual studio将为您制作副本.
将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应用程序一样将其链接到ASP.NET MVC应用程序.