You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 06:15:06