我想做的事
我一直在玩新发布的 Silverlight 5 和Silverlight 5 Toolkit(2011 年 12 月),我想尝试将我的 3D Silverlight 测试应用程序部署到第三方托管服务器(在我的情况下为 AppHarbor,但我对其他选项开放)。
我的测试应用程序只是您在创建新 Silverlight 3D 应用程序时获得的默认 Silverlight 3D 应用程序:
看起来 AppHarbor(和大多数其他托管站点)要求您将所需的 Silverlight 5 DLL 复制到您的项目中,因为它们没有在其服务器上安装所需的 SDK/工具包。
理论上看起来不错,但我不知道如何用 Silverlight 实际做到这一点。
问题
问题有两个方面:
我不确定哪些 DLL 需要手动复制到我的项目中,我不确定应该如何包含和引用它们。
在尝试将一些 Silverlight XNA DLL 复制到我的项目中并引用本地项目 DLL(而不是 SDK 安装和 Toolkit 安装的 DLL)之后,当我在浏览器中运行基本 3D Silverlight 应用程序时,它现在崩溃了 - -本地。(Silverlight 插件崩溃了。)在我开始摆弄引用和 DLL 之前,我没有遇到这个问题。默认项目工作得很好。所以我什至还没有部署到托管服务器,因为它不再在本地运行。
旁白
关于上面的后一点(Silverlight 插件崩溃),问题似乎与3D Silverlight 功能有关,这显然需要提升信任/权限——诚然,我还不完全理解这一切是如何工作的。
一般来说——不管所有这些 DLL/参考摆弄——似乎我需要在 Silverlight3dApp 项目属性中检查“在浏览器中运行时需要提升信任”,以使旋转的 3D 立方体应用程序显示在浏览器中. 或者,如果我不选中该选项,我需要在浏览器中手动右键单击 Silverlight 5 应用程序并在“权限”选项卡上启用 3D 图形。(旁注:如果我确实部署了它,我对这将如何影响我的最终用户感兴趣。他们是否必须以相同的方式手动调整权限?无论如何,这是另一天的问题。)
撇开这一点不谈:
- 如果我将所有内容保持默认状态,Silverlight 插件不会崩溃。
- 如果我将 Silverlight DLL 复制到我的项目中并在本地引用它们,如果启用了 3D 权限,Silverlight 插件就会崩溃。
- 如果我将 Silverlight DLL 复制到我的项目中并在本地引用它们,如果禁用3D 权限,Silverlight 插件不会崩溃。
问题
有没有人成功地将基本的 Silverlight 5 3D 应用程序部署到没有安装 Silverlight 5(和 Silverlight 5 Toolkit)的服务器上?
你是怎么做到的?哪些文件需要复制到我的项目中并在本地引用?哪些引用(如果有)需要删除?
子问题:如果有人对提升的信任/权限问题有任何见解,我也很想听听。