我从模板创建了一个新的Silverlight 3并启动了一个调试会话。但是,当我查看模块窗口时,我看到了以下内容:
缺少Silverlight3Application.dll的路径(即使发现pdb很好)。我确保它不仅仅是一个UI问题,实际上我可以删除位于PDB旁边的Silverlight3Application.dll文件,没有任何问题。
问题:
更新1
我真正需要的是在运行时使用Reflection找出Silverlight3Application.dll的位置。
然而,就像模块窗口隐藏真实位置一样,反射也是如此:
我尝试使用Prcocess Explorer手动定位此程序集,其位置似乎相当随机:
C:\用户\维塔利彼得\应用程序数据\本地\组件\ DL3 \ G1KDTYO5.XJ3 \ 6GQ19BER.4OW \ 5e5cbf28 \ 50366acf_1a3ecc01 \ Silverlight3Application.dll
任何人都知道如何在运行时找到程序集的位置?如果没有其他工作,使用外部工具是一个选项,但是,我必须能够从代码执行该工具。我很乐意听到你的想法。
谢谢!
答案 0 :(得分:1)
默认情况下,Silvelight DLL位于Silverlight项目的\ Bin \ Debug中。
如果要查看加载的确实DLL的位置:
有关Silverlight项目结构的详细说明,请参阅http://msdn.microsoft.com/en-us/library/cc838164%28v=vs.95%29.aspx。
到 Update1 :请参阅How do I get the path of the assembly the code is in?
答案 1 :(得分:1)
您是否考虑过如何在浏览器中实际执行程序集?它来自.XAP文件,而不是通过项目文件夹下构建/存储的任何DLL。更具体地说,您的项目构建一个DLL,然后将其打包到XAP文件中,然后将其提供给您的Web浏览器,该文件解压缩XAP文件,读取清单并加载指定的DLL入口点。
从XAP根目录到DLL的路径就是文件名(除非您自己自定义了XAP)。这可能就是没有指定任何路径的原因。