次の方法で共有


VSProject2 インターフェイス

Visual Basic または Visual C# のプロジェクトに固有の情報を含みます。Object オブジェクトは、プロジェクトが Visual Basic または Visual C# のプロジェクトである場合にこの値を返します。

名前空間:  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 (VSProject から継承されます。)
パブリック プロパティ BuildManager VSProjectBuildManager オブジェクトを取得します。
パブリック プロパティ DTE (VSProject から継承されます。)
パブリック プロパティ DTE トップ レベルの機能拡張オブジェクトを取得します。
パブリック プロパティ Events (VSProject から継承されます。)
パブリック プロパティ Events VSProjectEvents オブジェクトを取得します。このオブジェクトを使用すると、ImportsReferences、および BuildManager の各オブジェクトのイベントに応答できます。
パブリック プロパティ Events2 VSProjectEvents2 オブジェクトを取得します。このオブジェクトを使用すると、ImportsReferencesBuildManager、およびVSLangProjWebReferencesEvents の各オブジェクトのイベントに応答できます。
パブリック プロパティ Imports (VSProject から継承されます。)
パブリック プロパティ Imports プロジェクトに関連付けられている Imports オブジェクトを取得します。C# プロジェクトでは、Imports プロパティは Nothing (nullnull 参照 (Visual Basic では Nothing) 参照) に設定されます。
パブリック プロパティ Project (VSProject から継承されます。)
パブリック プロパティ Project Visual Basic プロジェクトまたは Visual C# プロジェクトに関連付けられた、汎用 Project オブジェクトを取得します。
パブリック プロパティ PublishManager PublishManager オブジェクトを取得して、1 回のクリックで発行できるようにします。
パブリック プロパティ References (VSProject から継承されます。)
パブリック プロパティ References プロジェクトの References コレクションを取得します。
パブリック プロパティ TemplatePath (VSProject から継承されます。)
パブリック プロパティ TemplatePath Microsoft Visual Studio 2005 では、このプロパティの使用は推奨されていません。代わりに、GetProjectItemTemplate を使用してください。
パブリック プロパティ WebReferencesFolder (VSProject から継承されます。)
パブリック プロパティ WebReferencesFolder プロジェクトの Web References フォルダーを表す ProjectItem オブジェクトを取得します。フォルダーが存在しない場合、このプロパティは Nothing (nullnull 参照 (Visual Basic では Nothing) 参照) を返します。
パブリック プロパティ WorkOffline (VSProject から継承されます。)
パブリック プロパティ WorkOffline Web プロジェクトがオンラインとオフラインのどちらで稼動しているかを示します。オフラインで稼動している場合は、サーバーにあるプロジェクト ファイルが変更されないように、プロジェクト ファイルのオフライン ストアで開発を継続します。

このページのトップへ

メソッド

  名前 説明
パブリック メソッド AddWebReference(String) (VSProject から継承されます。)
パブリック メソッド AddWebReference(String) プロジェクトに Web サービスへの参照を追加します。新しい Web サービス参照サブフォルダーは、プロジェクトの [Web References] フォルダーに追加されます。新しいフォルダーには、Web サービスに関連するほかの複数のプロジェクト項目が格納されます。このメソッドは、新しい Web サービス フォルダーに関連付けられた ProjectItem オブジェクトを返します。
パブリック メソッド CopyProject(String, String, prjCopyProjectOption, String, String) (VSProject から継承されます。)
パブリック メソッド CopyProject(String, String, prjCopyProjectOption, String, String) Web プロジェクトの一部または全部を新しい場所にコピーします。
パブリック メソッド CreateWebReferencesFolder() (VSProject から継承されます。)
パブリック メソッド CreateWebReferencesFolder() プロジェクトの Web References フォルダーを作成します。
パブリック メソッド Exec(prjExecCommand, Int32, Object, Object%) (VSProject から継承されます。)
パブリック メソッド Exec(prjExecCommand, Int32, Object, Object%) インフラストラクチャ。マイクロソフト内部でのみ使用します。
パブリック メソッド GenerateKeyPairFiles(String, String) (VSProject から継承されます。)
パブリック メソッド GenerateKeyPairFiles(String, String) アセンブリの厳密な名前を形成するために使用される公開/秘密キー ファイルを生成します。
パブリック メソッド GetUniqueFilename(Object, String, String) (VSProject から継承されます。)
パブリック メソッド GetUniqueFilename(Object, String, String) プロジェクト内で一意のファイル名を生成します。新しいプロジェクト項目に名前を付けるために使用します。
パブリック メソッド Refresh() (VSProject から継承されます。)
パブリック メソッド 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