如何使用控制台应用程序在 SharePoint Online 的 SiteCollection 级别添加 userCustomAction?

How to add a userCustomAction at SiteCollection level in SharePoint Online using Console application?

我正在通过控制台应用程序使用 UserCustomAction 注入 CSS 和 JS 文件。我正在使用下面的代码创建一个新的 userCustomAction:

UserCustomAction cssAction = web.UserCustomActions.Add();

cssAction.Location = "ScriptLink";
cssAction.Description = actionName;
cssAction.Sequence = 0;
cssAction.ScriptBlock = @"document.write('<link rel=""stylesheet"" href=""" + fileurl + @""" />');";
cssAction.Name = actionName;
cssAction.Update();
clientContext.ExecuteQuery();

此代码工作正常,但仅在 Web 级别注入文件。我需要将它们注入整个网站集,以便子网站也可以具有相同类型的品牌。谁能帮我解决如何在网站集级别应用它们或如何在其中使用 Scope 的问题?

提前致谢!

我认为问题出在您创建 UserCustomAction 的方式上。

您有 UserCustomAction cssAction = web.UserCustomActions.Add();,其中 web 可能是 SPWeb 对象。

何时应执行 UserCustomAction cssAction = site.UserCustomActions.Add(); 其中 site 是 SPSite 对象。

此处无需修改太多代码,您只需执行 UserCustomAction cssAction = web.Site.UserCustomActions.Add();