我使用此代码访问SharePoint映射文件夹下的特定XML;
XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream(
string.Format("{0}\\{1}", SPUtility.GetGenericSetupPath("TEMPLATE\\ADMIN\\AIP_RefinementPanel"), "CustomFilterCategoryDefinition.xml")));
但是我在部署期间遇到了错误。此代码无法访问此XML文件。我怎样才能解决问题?
谢谢,
MKacar
答案 0 :(得分:3)
如果您知道Url for your Xml文件(并且您知道它是因为它是您的自定义Wsp和Xml文件部署到某个映射的虚拟文件夹),最好获取文件的本地文件系统路径并将其提供给XmlReader,如由于需要授权,它可能会因Url而失败。
例如我有一个项目,其中一些Xml和Xslt文件部署到'layouts'映射文件夹
我可以通过下一个方式访问Config.xml
var configDirPath = HttpContext.Current.Server.MapPath("/_layouts/LMUI/Configuration");
var configFilePath = configDirPath + "\\" + "Config.xml";
阅读HttpContext.Current.Server.MapPath http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx上的MSDN文档以获取更多信息。
答案 1 :(得分:3)
如果省略对 GetManifestResourceStream 的调用,则代码应该有效。我想你想从文件系统中读取一个文件而不是嵌入到程序集中的资源。
string templatePath = SPUtility.GetGenericSetupPath("TEMPLATE");
string xmlPath = Path.Combine(templatePath, @"ADMIN\AIP_RefinementPanel\CustomFilterCategoryDefinition.xml");
XmlReader reader = XmlReader.Create(xmlPath);