如何检测Project Server环境并获取MS Project在用的企业自定义字段列表
MS Project VSTO 企业字段相关问题解决方案
1. 检测当前是否处于Project Server环境
你可以通过当前活动项目的ServerURL属性判断,本地项目的该属性为空字符串,关联Project Server的项目会返回对应服务器地址。
参考代码:
using Microsoft.Office.Interop.MSProject; public bool CheckProjectServerEnvironment(Application projectApp) { // 无活动项目时默认返回非Server环境 if (projectApp.ActiveProject == null) return false; return !string.IsNullOrWhiteSpace(projectApp.ActiveProject.ServerURL); }
2. 获取所有自定义企业字段并存入集合
你可以直接遍历VSTO提供的CustomFields全局集合,筛选标记为企业属性的字段即可存入你需要的列表/数组。
参考代码:
using Microsoft.Office.Interop.MSProject; using System.Collections.Generic; public List<CustomField> GetEnterpriseCustomFields(Application projectApp) { List<CustomField> resultList = new List<CustomField>(); // 非Server环境直接返回空集合 if (!CheckProjectServerEnvironment(projectApp)) return resultList; foreach (CustomField field in projectApp.CustomFields) { // 筛选企业自定义字段 if (field.IsEnterprise) { resultList.Add(field); } } // 如需转换为数组直接调用resultList.ToArray()即可 return resultList; }
注意:使用前需确保项目已引用Microsoft.Office.Interop.MSProject程序集,插件权限配置符合Project的安全要求
内容的提问来源于stack exchange,提问作者Kenny Arnold
相关产品推荐
相关产品推荐

