0

我设置将文本文件从模块复制到 SharePoint 服务器目录

<?xml version="1.0" encoding="utf-8"?>
 <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   <Module Name="MyModule">
    <File IgnoreIfAlreadyExists="TRUE" Path="MyModule\newFile.txt" Url="MyModule/newFile.txt" />
  </Module>
</Elements>

之后,在 featureActivated 中,我将通过以下代码获取文件:

                try
                {
                    SPFile newFile = myWeb.GetFile(properties.Definition.RootDirectory + "\\MyModule\\newFile.txt");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

我得到了这个例外:“价值不在预期范围内”。我是怎么了?

4

1 回答 1

0

SPWeb.GetFile Method(String)从SharePoint 站点获取文件,properties.Definition.RootDirectory 返回本地路径,就会得到异常。

我建议您将文件上传到根网站中的“站点资产”等文档库中,然后在功能接收器中获取文件。

示例代码:

元素.xml

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="MyModule" Url="SiteAssets" RootWebOnly="TRUE">
    <File IgnoreIfAlreadyExists="TRUE" Type="GhostableInLibrary" Path="MyModule\newFile.txt" Url="newFile.txt" />
  </Module>
</Elements>

特征接收器

try
{
    SPWeb myWeb = SPContext.Current.Site.RootWeb;
    SPFile newFile = myWeb.GetFile(myWeb.ServerRelativeUrl + "/SiteAssets/newFile.txt");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}
于 2019-11-05T08:33:50.097 回答