VSProject2 接口

包含特定于 Visual Basic 或 Visual C# 项目的信息。 如果项目是 Visual Basic 或 Visual C# 项目,则由 Object 对象返回它。

命名空间:  VSLangProj80
程序集:  VSLangProj80(在 VSLangProj80.dll 中)

语法

声明
<GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")> _
Public Interface VSProject2 _
    Inherits VSProject
[GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface VSProject2 : VSProject
[GuidAttribute(L"B1042570-25C6-424A-B58B-56FA83AA828A")]
public interface class VSProject2 : VSProject
[<GuidAttribute("B1042570-25C6-424A-B58B-56FA83AA828A")>]
type VSProject2 =  
    interface 
        interface VSProject 
    end
public interface VSProject2 extends VSProject

VSProject2 类型公开以下成员。

属性

  名称 说明
公共属性 BuildManager 获取 VSProjectBuildManager 对象。
公共属性 DTE 获取顶级扩展性对象。
公共属性 Events 获取 VSProjectEvents 对象,它使您可以响应 ImportsReferencesBuildManager 对象的事件。
公共属性 Events2 获取一个 VSProjectEvents2 对象,它使您可以响应 ImportsReferencesBuildManagerVSLangProjWebReferencesEvents 对象的事件。
公共属性 Imports 获取与项目关联的 Imports 对象。对于 C# 项目,将 Imports 属性设置为 Nothing(nullnull 引用(在 Visual Basic 中为 Nothing) 引用)。
公共属性 Project 获取与 Visual Basic 或 Visual C# 项目关联的泛型 Project 对象。
公共属性 PublishManager 获取一个 PublishManager 对象,以允许 Click Once 发布。
公共属性 References 获取项目的 References 集合。
公共属性 TemplatePath 此属性在 Microsoft Visual Studio 2005 中已被否决。请改用 GetProjectItemTemplate
公共属性 WebReferencesFolder 获取表示项目的“Web 引用”文件夹的 ProjectItem 对象。如果该文件夹不存在,此属性就会返回 Nothing(nullnull 引用(在 Visual Basic 中为 Nothing) 引用)。
公共属性 WorkOffline 指示 Web 项目是联机工作还是脱机工作。当脱机工作时,开发继续在项目文件的一个脱机存储区上进行,以便服务器中的项目文件不被更改。

页首

方法

  名称 说明
公共方法 AddWebReference 向项目添加对 Web 服务的引用。将向项目的“Web 引用”文件夹添加新的 Web 服务引用子文件夹。该新文件夹包含与该 Web 服务相关的若干其他项目项。该方法返回与新的“Web 服务”文件夹关联的 ProjectItem 对象。
公共方法 CopyProject 将 Web 项目的部分或全部内容复制到新位置。
公共方法 CreateWebReferencesFolder 为项目创建“Web 引用”文件夹。
公共方法 Exec 基础结构。 仅由 Microsoft 内部使用。
公共方法 GenerateKeyPairFiles 生成用于构成程序集强名称的公钥/私钥文件。
公共方法 GetUniqueFilename 生成项目中的唯一的文件名。为命名新的项目项。
公共方法 Refresh 刷新“解决方案资源管理器”中项目的外观,并刷新引用。

页首

备注

Project 是核心扩展性对象,可包含有关任意语言的项目的信息。 Project 对象的 Object 属性返回一个对象,该返回对象的类型取决于所用的项目语言。 对于 Visual Basic 和 Visual C#,该对象是 VSProject2 对象。

Object 属性返回 Object 数据类型。 然后,Object 属性返回的数据对象可显式转换为 VSProject2。 下面的示例使用 CType 函数演示这种转换。 PrjKind 用于在转换前测试项目的类型。

示例

若要将此示例作为外接程序运行,请参见如何:编译和运行自动化对象模型代码示例

若要确定 Visual Basic 或 Visual C# 项目是否为智能设备项目,请使用 prjKindSDEVBProjectprjKindSDECSharpProject

[Visual Basic]

Imports VSLangProj
Imports VSLangProj2
Imports VSLangProj80
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst _
 As Object, ByRef custom As Array) Implements _
 IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    VSProject2Example(applicationObject)
End Sub

 Sub VSProject2Example(ByVal dte As DTE2)
    Dim aProject As Project
    Dim aVSProject2 As VSProject2

    aProject = applicationObject.Solution.Projects.Item(1)
    MsgBox(aProject.Kind & aProject.Name)
    If (aProject.Kind = PrjKind.prjKindVBProject) Or_
    (aProject.Kind = PrjKind.prjKindCSharpProject) Then
        aVSProject2 = CType(applicationObject.Solution.Projects.Item(1).Object, _
        VSProject2)
        MsgBox(aVSProject2.Project.FullName)
    Else
        MsgBox("The first project is not a Visual Basic or C# _
        project.")
    End If
End Sub

[C#]

// To use Messabox.Show, a reference to Windows.Forms is required.
using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
public void OnConnection(object application, ext_ConnectMode
 connectMode, object addInInst, ref Array custom)
{
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    VSProject2Example((DTE2)applicationObject);
}

public void VSProject2Example(DTE2 dte)
{
    Project aProject = null; 
    VSProject aVSProject2 = null; 
    aProject = applicationObject.Solution.Projects.Item( 1 ); 
    MessageBox.Show( aProject.Kind + aProject.Name); 
    if ( ( aProject.Kind == PrjKind.prjKindVBProject ) |
 ( aProject.Kind == PrjKind.prjKindCSharpProject ) ) 
    { 
        aVSProject2 = ( ( VSProject )
(applicationObject.Solution.Projects.Item( 1 ).Object ) ); 
        MessageBox.Show( aVSProject2.Project.FullName); 
    } 
    else 
    { 
        MessageBox.Show( "The first project is not a Visual Basic or C# project."); 
    } 
}

请参阅

参考

VSLangProj80 命名空间

VSProject