共用方式為


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 (繼承自 VSProject)。
公用屬性 BuildManager 取得 VSProjectBuildManager 物件。
公用屬性 DTE (繼承自 VSProject)。
公用屬性 DTE 取得最上層的擴充性物件。
公用屬性 Events (繼承自 VSProject)。
公用屬性 Events 取得一個 VSProjectEvents 物件,可用來回應 ImportsReferencesBuildManager 物件的事件。
公用屬性 Events2 取得一個 VSProjectEvents2 物件,可用來回應 ImportsReferencesBuildManagerVSLangProjWebReferencesEvents 物件的事件。
公用屬性 Imports (繼承自 VSProject)。
公用屬性 Imports 取得與專案關聯的 Imports 物件。對 C# 專案來說,Imports 屬性是設定為 Nothing (nullNull 參照 (即 Visual Basic 中的 Nothing) 參考)。
公用屬性 Project (繼承自 VSProject)。
公用屬性 Project 取得與 Visual Basic 或 Visual C# 專案關聯的泛型 Project 物件。
公用屬性 PublishManager 取得 PublishManager 物件以允許 ClickOnce 發行。
公用屬性 References (繼承自 VSProject)。
公用屬性 References 取得此專案的 References 集合。
公用屬性 TemplatePath (繼承自 VSProject)。
公用屬性 TemplatePath 在 Microsoft Visual Studio 2005 中已取代此屬性。請改用 GetProjectItemTemplate
公用屬性 WebReferencesFolder (繼承自 VSProject)。
公用屬性 WebReferencesFolder 取得代表專案 Web 參考資料夾的 ProjectItem 物件。如果資料夾不存在,這個屬性會傳回 Nothing (nullNull 參照 (即 Visual Basic 中的 Nothing) 參考)。
公用屬性 WorkOffline (繼承自 VSProject)。
公用屬性 WorkOffline 指出 Web 專案是在連線狀態下工作或離線工作。當它離線工作時,專案檔的離線儲存會繼續開發,如此一來伺服器上的專案檔就不會變更。

回頁首

方法

  名稱 說明
公用方法 AddWebReference(String) (繼承自 VSProject)。
公用方法 AddWebReference(String) 將 Web 服務的參考加入至專案。新的 Web 服務參考子資料夾會加入至專案的 Web 參考資料夾。這個新的資料夾包含幾個與 Web 服務相關的其他專案項目。這個方法會傳回與新 Web 服務資料夾關聯的 ProjectItem 物件。
公用方法 CopyProject(String, String, prjCopyProjectOption, String, String) (繼承自 VSProject)。
公用方法 CopyProject(String, String, prjCopyProjectOption, String, String) 將部分或整個 Web 專案複製至新位置。
公用方法 CreateWebReferencesFolder() (繼承自 VSProject)。
公用方法 CreateWebReferencesFolder() 為專案建立 Web 參考資料夾。
公用方法 Exec(prjExecCommand, Int32, Object, Object%) (繼承自 VSProject)。
公用方法 Exec(prjExecCommand, Int32, Object, Object%) 基礎架構。僅限 Microsoft 內部使用。
公用方法 GenerateKeyPairFiles(String, String) (繼承自 VSProject)。
公用方法 GenerateKeyPairFiles(String, String) 產生公開金鑰 (Public Key)/私密金鑰 (Private Key) 檔案,用來形成組件的強式名稱 (Strong Name)。
公用方法 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 是用來測試轉換前的專案類型。

範例

若要將此範例當做增益集來執行,請參閱 HOW TO:編譯和執行 Automation 物件模型程式碼範例

若要判斷 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