如何将3D Silverlight 5 Web应用程序部署到第三方托管服务器?

Mic*_*ael 3 deployment silverlight silverlight-toolkit appharbor

我想做的事

我一直在玩弄新发布的Silverlight 5以及Silverlight的5工具包(2011年12月),我想试试我的部署Silverlight的3D测试应用程序的第三方托管服务器(AppHarbor在我的情况,但我对其他选项开放).

我的测试应用程序只是您在创建新的Silverlight 3D应用程序时获得的默认Silverlight 3D应用程序:

看起来AppHarbor(以及大多数其他托管站点)要求您将所需的Silverlight 5 DLL复制到项目中,因为它们的服务器上没有安装所需的SDK/Toolkits.

理论上似乎很好,但我不知道如何使用Silverlight实际执行此操作.

问题

问题是双重的:

  1. 我不确定哪些DLL需要手动复制到我的项目中,我不确定它们应该如何被包含和引用.

  2. (而不是SDK安装和工具包安装DLL)的一些实验用复制几个Silverlight的XNA的DLL到我的项目和引用本地项目的DLL后,当我在浏览器中运行的基本的3D Silverlight应用程序现在崩溃- - 当地.(Silverlight插件崩溃.)在我开始摆弄引用和DLL之前,我没有遇到这个问题; 默认项目工作得很好.所以我甚至没有部署到托管服务器,因为它不再在本地运行.

一边说

在上面的后一点(Silverlight插件崩溃),问题似乎与3D Silverlight功能有关,这显然需要提升的信任/权限 - 诚然,我并不完全理解这一切是如何工作的.

一般来说 - 不管这一切的DLL /参考摆弄的 - 好像我需要检查在Silverlight3dApp项目属性"需要提升的信任在浏览器中运行时"来获得纺纱3D立方体的应用程序在浏览器中显示出来.或者,如果我不选中,我需要在浏览器中右键单击Silverlight 5应用程序并在"权限"选项卡上启用3D图形.(附注:我对如何部署这个会影响我的最终用户感兴趣.他们是否必须以同样的方式手动调整权限?无论如何,这是一个不同日子的问题.)

抛开这一点:

  1. 如果我按照默认方式保留所有内容,Silverlight插件不会崩溃.
  2. 如果我将Silverlight DLL复制到我的项目中并在本地引用它们,那么如果启用了 3D权限,则Silverlight插件会崩溃.
  3. 如果我将Silverlight DLL复制到我的项目中并在本地引用它们,那么如果禁用 3D权限,Silverlight插件不会崩溃.

这个问题

有没有人成功地将基本的Silverlight 5 3D应用程序部署到没有安装Silverlight 5(和Silverlight 5 Toolkit)的服务器上?

你是怎么做到的?需要将哪些文件复制到我的项目中并在本地引用?需要删除哪些引用(如果有)?

子问题:如果有人对提升的信任/权限问题有任何见解,我也很乐意听到这些问题.

Ern*_*rno 5

对于AppHarbor,我在Silverlight项目(lib)中创建一个文件夹,并复制我所依赖的所有程序集,并将所有程序集标记为要复制到输出.

接下来我subst用来创建一个指向该文件夹的虚拟驱动器,并添加对该虚拟驱动器上的程序集的所有引用.(这不是AppHarbor所必需的,但这样我可以将我的代码检查到我想要的任何机器上的任何文件夹而不会弄乱路径)

请注意,您还需要将这些dll添加到存储库(git/mercurial),因为标准.hgignore文件将跳过*.dll文件.