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 | 取得 VSProject 的 BuildManager 物件。 | |
DTE | (繼承自 VSProject)。 | |
DTE | 取得最上層的擴充性物件。 | |
Events | (繼承自 VSProject)。 | |
Events | 取得一個 VSProjectEvents 物件,可用來回應 Imports、References 和 BuildManager 物件的事件。 | |
Events2 | 取得一個 VSProjectEvents2 物件,可用來回應 Imports、References、BuildManager 和 VSLangProjWebReferencesEvents 物件的事件。 | |
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# 專案是否為智慧型裝置專案,請使用 prjKindSDEVBProject 和 prjKindSDECSharpProject。
[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.");
}
}