簡體   English   中英

如何確定程序集(DLL)是來自GAC還是Visual Studio中的本地二進制文件

[英]How do I determine if an assembly (DLL) is coming from the GAC or local binaries in Visual Studio

我正在處理一個舊項目,該項目具有一個共享二進制文件夾,供各種項目使用。 我知道最好使用nuget解決方案,而不要使用共享二進制文件的文件夾,但是這種舊項目環境不允許這樣做。

我們遇到的問題是,這些共享二進制文件的其他一些版本已經存在於工程師的機器上(我假設安裝在GAC中)。 因此,當他們添加參考時,他們偶爾會選擇系統(GAC)實例而不是項目實例。

然后,當我們部署到未安裝GAC版本的DLL的遠程目標時,該應用程序/網頁將無法工作。

我已經看到了如何將引用添加到csproj XML文件中,但是我不太清楚如何確定引用是否會導致GAC。

Visual Studio中是否有一種方法可以確定DLL是來自GAC還是來自我們的共享庫文件夾? 如果不在Visual Studio中,是否為此提供了VS命令行選項? .sln.csproj文件中最終識別此問題的方法怎么樣?

您可以使用gacutil.exe,我相信

gacutil /l MyDll

或者您可以通過代碼來做到這一點:

if (!myDll.GlobalAssemblyCache)
{
     // not in GAC
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM