我有以下代码。它找不到我的资源:
string filename = "Resources/Functions.plist";
Uri fileUri = new Uri(filename, UriKind.Relative);
StreamResourceInfo sr = Application.GetResourceStream(fileUri);
但是在上面执行之后,sr为null。不好。
我在名为“Resources”的目录中有一个名为“Functions.plist”的文件,该目录是我的项目目录的子目录。当我在解决方案资源管理器中右键单击它时,我将其构建操作视为“资源”,并将其复制到输出目录为“如果更新则复制”。
以下是加载它的.csproj文件的一部分,或者至少我认为它是这样的:
<ItemGroup>
// AppManifest and WMAppManifest here
<Resource Include="Resources\**">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Resource>
可能出现什么问题?
答案 0 :(得分:0)
我通常做的是在设计器中加载一个随机图像,然后从XAML代码复制自动生成的路径,并将其用作我自己的.CS代码的模板。
当然,如果它不是图像,我将路径用作其他对象的模板。
如果您选择“始终复制”选项,也可能有所帮助。
答案 1 :(得分:0)
对于资源,你的uri格式与内容略有不同,你需要的是:
string filename = "/{yourAssemblyShortName};component/resources/functions.plist";
第一部分告诉系统在哪个程序集中查找资源。如果你不知道名字,你应该可以在项目属性屏幕中找到它。
答案 2 :(得分:0)
原来我要做的就是使用以下内容来包含项目中的文件:
<ItemGroup>
<None Include="Properties\AppManifest.xml">
<SubType>Designer</SubType>
</None>
<None Include="Properties\foo.plist" />
<None Include="Properties\WMAppManifest.xml">
<SubType>Designer</SubType>
</None>
<Content Include="Resources\Functions.plist">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Resources\Help List.plist">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
// and similarly for the other resource files
</ItemGroup>
我不确定,但关键可能是将“资源”更改为“内容”。
答案 3 :(得分:0)
我认为你可以获得这样的资源。
string filename = "Resources\\Functions.plist";
Uri fileUri = new Uri(filename, UriKind.Relative);
StreamResourceInfo sr = Application.GetResourceStream(fileUri);
因为WP7的文件分隔符是斜杠,而不是斜杠。
我希望这可以提供帮助。