使用C#for Sharepoint在线创建项目

时间:2016-10-10 07:59:45

标签: c# visual-studio sharepoint

是的,我有一些代码,允许我在线创建一个Sharepoint项目,但是它正在创建一个"企业项目"默认情况下,我想创建,它作为" SharePoint任务列表"代替即可。 (在线编辑项目时,这些是以下两个选项)

enter image description here

我设法找到的唯一代码是改变它:

// Get the GUID of the specified enterprise project type.
        private static Guid GetEptUid(string eptName)
        {
            Guid eptUid = Guid.Empty;

            try
            {
                // Get the list of EPTs that have the specified name. 
                // If the EPT name exists, the list will contain only one EPT.
                var eptList = projContext.LoadQuery(
                    projContext.EnterpriseProjectTypes.Where(
                        ept => ept.Name == eptName));
                projContext.ExecuteQuery();

                eptUid = eptList.First().Id;

                // Alternate routines to find the EPT GUID. Both (a) and (b) download the entire list of EPTs.
                // (a) Using a foreach block:
                //foreach (EnterpriseProjectType ept in projSvr.EnterpriseProjectTypes)
                //{
                //    if (ept.Name == eptName)
                //    {
                //        eptUid = ept.Id;
                //        break;
                //    }
                //}
                // (b) Querying for the EPT list, and then using a lambda expression to select the EPT:
                //var eptList = projContext.LoadQuery(projContext.EnterpriseProjectTypes);
                //projContext.ExecuteQuery();
                //eptUid = eptList.First(ept => ept.Name == eptName).Id;
            }
            catch (Exception ex)
            {
                string msg = string.Format("GetEptUid: eptName = \"{0}\"\n\n{1}",
                    eptName, ex.GetBaseException().ToString());
                throw new ArgumentException(msg);
            }
            return eptUid;
        }

从这里引用:https://msdn.microsoft.com/en-us/library/microsoft.projectserver.client.projectcontext.waitforqueue.aspx

从此代码块

我必须传递basicEpt名称,给出的示例是:private static string basicEpt = "SharePoint Tasks List";

我尝试过使用varius设置创建的多个EPT,但是我仍在创建一个企业项目,所以要么我错过了什么?

此处提供了可供下载sharepoint的示例项目列表:https://github.com/OfficeDev/Project-Samples

我对"创建 - 更新 - 项目 - 样本"感兴趣特别是。这将为您提供一个直接工作的程序,并希望能够证明我的问题是什么,所需要的就是在上面的函数中添加。

感谢您在这里提供任何帮助,它正在使用上述功能传递正确的GUID,但它没有正确保存。

enter image description here

1 个答案:

答案 0 :(得分:0)

我对你的问题也有很多困惑,我发现当你创建一个带有任务列表的项目时,它将成为sharepoint任务项目。 希望这会有所帮助。

var pci = new ProjectCreationInformation
            {
                Name = "new1",
                Description = "test",
                EnterpriseProjectTypeId = new Guid(""),
                //Id = Guid.NewGuid(),
                Start = DateTime.UtcNow,
                TaskList = taskList
            };
            var project = context.Projects.Add(pci);