簡體   English   中英

無法加載文件或程序集System.IO.FileNotFoundException

[英]Could not load file or assembly System.IO.FileNotFoundException

我正在開發的應用程序是一個簡單的遠程聊天應用程序。

當我嘗試運行我的應用程序時,我遇到此異常。 當談到加載文件或程序集時,我真的不明白。

“ System.Reflection.TargetInvocationException:調用的目標引發了異常。---> System.IO.FileNotFoundException:無法加載文件或程序集'Client,Version = 1.0.0.0”

try
{
   gt = (Greeting)Activator.GetObject(typeof(Greeting), "tcp://Localhost:7189/Greeting");
   handler = new MessageHandler(OnReceive);
   gt.Sender += handler;
}
catch(Exception ex)
{
   textBox2.Text = ex.ToString();
}

此行拋出此異常

gt.Sender += handler;

以下是我的問候語課程。

[Serializable]
public delegate void MessageHandler(string mymsg);
public class Greeting:MarshalByRefObject
{
    public event MessageHandler Sender;

    public override object InitializeLifetimeService()
    {
        return null;
    }

    public Greeting()
    {
    }

    public void postGreeting(string msg)
    {
        if (Sender != null)
        {
            Sender(msg);
        }
    }
}

我假設處理程序是在您的Client程序集中創建的? 訂閱Greetings.Sender事件時,對該處理程序的引用將傳遞到您的服務器程序集。 作為服務器端反序列化的一部分,它必須解析處理程序類型。 由於它位於客戶端程序集中,因此服務器程序集必須可以訪問它。

將所有程序集構建到一個共享的調試或發布文件夾中,然后重試。

使用Microsoft sysinternals進程監視器,配置該工具以監視應用程序的所有文件訪問操作,然后您可以查看您的進程嘗試訪問的程序集。

使用Microsoft sysinternals進程監視器的想法對我來說非常理想。 我能夠看到它正在尋找錯誤文件夾中的依賴項之一。

如果遇到Could not load file or assembly使用程序集綁定日志查看器 (在名為fuslogvw.exe磁盤上,以及.NET SDK中的availbale)在GAC或您的應用程序文件夾中准確找出您的進程實際上正在探查什么。

典型的登錄條目將保存類似於以下內容的信息:

LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.DLL.

然后您可以驗證它是否從期望的位置加載程序集,包括版本是否正確。

從msdn文檔進行探測

暫無
暫無

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

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