References.Add 方法
將新的參考加入專案。
命名空間: VSLangProj
組件: VSLangProj (在 VSLangProj.dll 中)
語法
'宣告
Function Add ( _
bstrPath As String _
) As Reference
Reference Add(
string bstrPath
)
Reference^ Add(
[InAttribute] String^ bstrPath
)
abstract Add :
bstrPath:string -> Reference
function Add(
bstrPath : String
) : Reference
參數
bstrPath
類型:String必要項。 COM 或 .NET Framework 參考的路徑。
這個參數可有三種格式:
簡單的 .NET Framework 物件名稱,例如「System」。
.NET Framework 檔名 (.tlb、.dll 或 .ocx 檔)。
COM 程式庫檔案 (.tlb、.dll、.ocx 或 .exe 檔案)。 COM 物件的路徑需要包含完整路徑及檔名,例如 "D:\SomeApplication\SomeApp.dll"。 如需加入 COM .exe 檔案參考的限制,請參閱下節的<COM 參考>。
傳回值
類型:VSLangProj.Reference
傳回 Reference 物件。
備註
如果 bstrPath 參數指定的檔案中沒有型別程式庫,或是無法解析參考 (請參閱<參考解析>一節),便會產生錯誤。
如果專案中有一項參考的 Identity、Culture、MajorVersion、MinorVersion、BuildNumber 和 RevisionNumber 與新參考的相同,這個方法就不會產生錯誤。 這種情況表示 bstrPath 參數指定的參考已經加入至專案。 而是將專案中已存在之相符參考的 ProjectItem 傳回。
如果專案中有一個參考具有相同的 Identity,但它的 MajorVersion、MinorVersion、BuildNumber、RevisionNumber 或 Culture 不同,則此方法會產生錯誤。
若要移除參考,請使用 Remove。
COM 參考
這個方法會為參考檔案中的第一個型別程式庫傳回 Reference 物件。
這個方法會加入在型別程式庫檔案 (Type Library File) 中找到的所有物件以及這些物件的任何相依性。 因此,只要呼叫這個方法就可能會導致一個以上的參考加入至 References 集合。
如果 COM .exe 檔案包含型別程式庫,就可將這些檔案以參考的方式加入。 在這種情況下,將會加入 .exe 檔案中所包含的所有註冊型別程式庫的參考。
.NET Framework 參考
這個方法會傳回代表所參考組件的 Reference 物件。
由於這些參考不具有型別程式庫檔案,因此不會將相依組件以參考的形式加入專案。
如果參考是同樣具有內嵌型別程式庫的組件,則只會加入組件的參考。
.NET Framework .exe 檔案的參考是可允許的。
參考解析
當儲存專案檔時,並不會將參考的路徑儲存為專案的一部分。 如此一來可讓電腦之間更容易共用專案檔。 例如,System.dll 可以儲存在A 電腦的 C:\Bigfolder 中,也可以儲存在 B 電腦的 D:\Smallfolder 中。 針對 .NET Framework 參照,只有參照組件名稱保持不變。 因此,就 System.dll 而言,保存的是「System」。
編譯器只接受完整路徑加上檔案名稱形式的參考,例如 C:\Bigfolder\system.dll 形式。 因此,在設計階段找到組件的方法必須一致。 如果可以找到組件的完整路徑,表示組件已解析。 解析的路徑是到參考的完整路徑。 就前面的 System 範例而言,如果在 C:\Bigfolder 中找到 System.dll,則當解析 System.dll 時,它的解析路徑就是 C:\Bigfolder\System.dll。
若要解析參考,開發環境會從參考建立搜尋名稱,接著搜尋參考。 之所以建立包含 .dll 副檔名的搜尋名稱,是因為參考的儲存名稱可能會,也可能不會包含 .dll 副檔名。 ReferenceOne 及 ReferenceTwo.dll 這兩個參考的名稱將分別是 ReferenceOne.dll 及 ReferenceTwo.dll。
開發環境會依下列順序搜尋名稱,並在找到符合的名稱時停止:
依專案階層架構。
依專案層級設定的參考搜尋路徑。 如需詳細資訊,請參閱ReferencePath。
依列舉參考時,元件選擇器所使用的目錄集。 這個目錄集是在安裝期間儲存於登錄。
當載入專案時,會解析每個參考。 當 Add 方法的 bstrPath 參數不是完整路徑時,也會對新的參考進行解析。
如果無法解析參考,則會產生錯誤。 COM 參考永遠會進行解析,因為 bstrPath 參數中必須使用完整的路徑名稱。 如果 bstrPath 參數是 .NET Framework 名稱 (例如 SomeObject) 或是不包含路徑的 .NET Framework 檔名 (例如 SomeObject.dll),就有可能無法解析參考,此時就會產生錯誤。
範例
' Macro Editor
Imports VSLangProj
Sub AddExample()
' This example assumes that the first project in the solution is
' either a Visual Basic or C# project.
Dim aVSProject As VSProject = _
CType(DTE.Solution.Projects.Item(1).Object, VSProject)
Dim refs As References = aVSProject.References
' Adds a reference to a compiled .NET project.
refs.Add("C:\path\program.dll")
' Adds a reference to an installed ActiveX control.
refs.Add("C:\WINNT\system32\msmask32.ocx")
' Adds a reference to System.dll as an example of adding a
' reference using just the simple name.
refs.Add("System")
End Sub
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。