摘要:\u003Cstrong\u003E>>点击文末“了解更多”免费下载Aspose.Tasks for .NET最新版\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E新增与改进\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003ETASKSNET-3142 使用Project Server的“ReadProjectCoreData”内部API实现项目的读取 新功能 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3342 修复文件加载的异常 Bug \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3320 修复“未分配”资源分配的时间分段数据计算 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3319 在读取MSP 2019 MPP文件时修复异常 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3259 在重新保存项目后修复根任务可见性 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3147 修复非工作日的任务分割算法 Bug修复 \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E公共API更改\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Chr\u003E\u003Ch1\u003E\u003Cstrong\u003E添加了以下公共方法和属性:\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003EAspose.Tasks.ExtendedAttribute.ToString:返回扩展属性的短字符串表示形式。\u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.ProjectServerCredentials.UserName:获取SharePoint站点的用户名 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.ProjectServerCredentials#构造函数(System.String,System.String,System.String):使用SharePoint站点的URL,用户名和密码初始化 \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E删除了以下公共方法和属性: \u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003E Aspose.Tasks.Value.DurationValue \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E添加了以下公开枚举:\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineCost 表示基线成本(分配)字段。

"\u003Cdiv\u003E\u003Cp\u003E\u003Cstrong\u003EAspose.Tasks for .NET\u003C\u002Fstrong\u003E是一个可靠的项目管理API,用于处理Microsoft Project文件。支持读取,写入和操作Microsoft Project文档,而不依赖于任何Microsoft Project。此外,API公开项目数据以提供完整的项目规划,定义和跟踪功能。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003EAspose.Tasks for .NET\u003C\u002Fstrong\u003E展示了项目数据,如任务,资源,资源分配和扩展属性数据,以便开发人员可以操作它们。用户可以通过创建和读取任务和资源来完全规划项目,并为任务分配或删除资源。用户可以操纵任务约束,优先级,关键和工作驱动的任务,停止或恢复任务和拆分任务,管理扩展属性,链接任务并将更新的任务数据写回项目。\u003C\u002Fp\u003E\u003Cp\u003EAspose.Tasks for .NET更新至v19.7,使用Project Server的“ReadProjectCoreData”内部API实现项目的读取,修复多项Bug!\u003Cstrong\u003E>>点击文末“了解更多”免费下载Aspose.Tasks for .NET最新版\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E新增与改进\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003ETASKSNET-3142 使用Project Server的“ReadProjectCoreData”内部API实现项目的读取 新功能 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3342 修复文件加载的异常 Bug \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3320 修复“未分配”资源分配的时间分段数据计算 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3319 在读取MSP 2019 MPP文件时修复异常 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3259 在重新保存项目后修复根任务可见性 Bug修复 \u003C\u002Fli\u003E\u003Cli\u003ETASKSNET-3147 修复非工作日的任务分割算法 Bug修复 \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E公共API更改\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Chr\u003E\u003Ch1\u003E\u003Cstrong\u003E添加了以下公共方法和属性:\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003EAspose.Tasks.ExtendedAttribute.ToString:返回扩展属性的短字符串表示形式。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.ProjectOnlineReader.GetProjectRawData(的System.Guid):获取项目的二进制数据以进行故障排除。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.ProjectServerCredentials.UserName:获取SharePoint站点的用户名 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.ProjectServerCredentials#构造函数(System.String,System.String,System.String):使用SharePoint站点的URL,用户名和密码初始化 \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E删除了以下公共方法和属性: \u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003E Aspose.Tasks.Value.DurationValue \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Ch1\u003E\u003Cstrong\u003E添加了以下公开枚举:\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cul\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineCost 表示基线成本(分配)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineCostPerUse 表示每次使用的基准成本(分配)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineFinish 表示基线完成(分配)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineStart 表示基线开始(分配)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentBaseLineWork 表示基线工作(分配)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceAssignmentGuid 表示Guid(Assignment)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.ResourceTypeIsCost 表示“类型(成本)”字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.Field.TaskBaseLineFixedCost 表示基线固定成本(任务)字段。 \u003C\u002Fli\u003E\u003Cli\u003EAspose.Tasks.TaskKey.ParentTaskGuid 表示ParentTaskGuid(任务)字段。 \u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E\u003Cstrong\u003E以前用户必须使用Microsoft.SharePoint.Client.Runtime程序集检索AuthToken:\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cpre\u003EUri siteUrl = new Uri(\"https:\u002F\u002Fcontoso.sharepoint.com\");\u003Cbr\u003Evar username = \"[email protected]\";\u003Cbr\u003ESecureString password = new SecureString();\u003Cbr\u003Evar pwdS = \"MyPassword\";\u003Cbr\u003Eforeach (char c in pwdS)\u003Cbr\u003E{\u003Cbr\u003E password.AppendChar(c);\u003Cbr\u003E}\u003Cbr\u003Evar onlineCredentials = new SharePointOnlineCredentials(username, password);\u003Cbr\u003Evar fedAuthTicket = onlineCredentials.GetAuthenticationCookie(siteUrl, true);\u003Cbr\u003Evar projectOnlineCredentials = new ProjectServerCredentials(siteUrl.ToString(), fedAuthTicket);\u003Cbr\u003EProjectOnlineReader reader = new ProjectOnlineReader(projectOnlineCredentials);\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E\u003Cstrong\u003E现在,用户可以选择指定SiteUrl,用户名和密码,以便创建与Project Online的连接:\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cpre\u003Estring sharepointDomainAddress = \"https:\u002F\u002Fcontoso.sharepoint.com\";\u003Cbr\u003Estring userName = \"[email protected]\";\u003Cbr\u003Estring password = \"MyPassword\";\u003Cbr\u003E \u003Cbr\u003Evar credentials = new ProjectServerCredentials(sharepointDomainAddress, userName, password);\u003Cbr\u003EProjectOnlineReader reader = new ProjectOnlineReader(credentials);\u003Cbr\u003Evar list = reader.GetProjectList();\u003Cbr\u003E \u003Cbr\u003Eforeach (var p in list)\u003Cbr\u003E{\u003Cbr\u003E Console.WriteLine(\"{0} - {1} - {2}\", p.Name, p.CreatedDate, p.LastSavedDate);\u003Cbr\u003E}\u003Cbr\u003E \u003Cbr\u003Eforeach (var p in list)\u003Cbr\u003E{\u003Cbr\u003E var project = reader.GetProject(p.Id);\u003Cbr\u003E Console.WriteLine(\"Project '{0}' loaded. Resources count: {1}\", \u003Cbr\u003E p.Name, \u003Cbr\u003E project.Resources.Count);\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6720116897523696132
相关文章