Windows phone 7 将文件从桌面复制到Windows Phone 7独立存储

Windows phone 7 将文件从桌面复制到Windows Phone 7独立存储,windows-phone-7,Windows Phone 7,我是电话7开发的新手 我正在尝试创建一个应用程序,该应用程序将加载我在手机上设置的位置创建的所有DLL 我有一个基本菜单应用程序,它将加载我创建的所有DLL,并使用反射向用户显示一个DLL列表,以从DLL中获取一个图标和一个描述 我有下面的代码来获取所有的dll,但它不工作 Dim cPlugins As New PluginCollection Dim temp As String = System.Reflection.Assembly.GetExecutingAssembl

我是电话7开发的新手

我正在尝试创建一个应用程序,该应用程序将加载我在手机上设置的位置创建的所有DLL

我有一个基本菜单应用程序,它将加载我创建的所有DLL,并使用反射向用户显示一个DLL列表,以从DLL中获取一个图标和一个描述

我有下面的代码来获取所有的dll,但它不工作

Dim cPlugins As New PluginCollection
        Dim temp As String = System.Reflection.Assembly.GetExecutingAssembly.GetName().CodeBase.ToString
        temp = System.Reflection.Assembly.GetExecutingAssembly.FullName
        Dim strFolder As String = System.IO.Path.GetDirectoryName(temp)
        strFolder = System.IO.Path.Combine(strFolder, "DLLS")

        For Each strFile As String In System.IO.Directory.GetFiles(strFolder, "*.dll")
            cPlugins.Add(New Plugin(strFile))
        Next
上述代码不起作用,并不断返回一个“未找到文件”错误


有什么帮助吗?

要将DLL作为资源检索,您需要将它们作为嵌入式资源添加到projet/XAP文件中的构建操作

这将不需要您将它们复制到独立存储中

如果要将它们复制到独立存储中,那么可以使用独立存储资源管理器将htem放在那里,但这只适用于测试。对于live应用程序,您需要将它们包含在XAP中,然后将它们复制到独立存储中。由于您不需要在独立的存储中打开它们作为资源来提取图像,因此这将是不必要的工作

如果可能的话,您可以在WP7应用程序中通过不将图像嵌入DLL使事情变得更简单,但如果您在多个平台上的项目中使用相同的图像/DLL,这可能不实用。即使是这种情况,我还是建议考虑在WP7应用程序中添加一个构建步骤,以便在设计时提取一次图像。这将意味着你的应用程序需要做的更少。因此,它将能够更快,出现错误的机会更少,并为用户提供更好的体验

编辑: 问题在于您试图在IsolatedStorage中查询文件的方式。无需计算隔离存储位置的实际路径。相反,您应该使用。您将像这样使用它:

Using store As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
    .... store.GetFileNames("/DLLS/*.dll")
End Using

手机上的Silverilght不支持属性代码库。请参阅,但不需要使用此方法来查找隔离存储位置。改为使用该类。

该类是否在手机上运行?它在Dim temp行中的值为String=System.Reflection.Assembly.getExecutionGassembly.GetName.CodeBase.ToString谢谢,但它仍然没有真正解决我的问题,我已将构建操作设置为Content,由于我可以将我的DLL作为资源,因此这些DLL可以更改,最终计划是从web服务器下载较新版本。当我的应用程序以String=System.Reflection.Assembly.GetExecutionGassembly.GetName.CodeBase.ToString的形式点击Dim temp行时,应用程序停止运行,异常不显示您是对的,如果你要更新它们,那么将它们放在XAP中是没有帮助的。除了使用System.Reflection.Assembly.GetExecutionGassembly.GetName.CodeBase.ToString之外,还有其他方法可以找到应用程序的安装位置吗?谢谢你,但是我只是一个傻瓜,因为当我使用你的代码时,我一直获取的目录不存在。你可以使用DirectoryExists方法测试现有目录谢谢你们的帮助,我解决了这个问题,但让应用程序在启动时将我的所有DLL从Web服务直接下载到独立存储中。这样我就可以得到它们的列表,并将此列表显示给用户。