【问题标题】:.net application running at network share folder.net 应用程序在网络共享文件夹中运行
【发布时间】:2012-01-17 02:11:38
【问题描述】:

我们在服务器机器上安装了一个复杂的应用程序。它通过在服务器计算机的共享文件夹中创建 exe 的快捷方式在客户端计算机上运行。 exe和dll不在同一个文件夹中。 从服务器机器上运行这个应用程序很好。 但是,当从客户端计算机运行应用程序时,Assembly.LoadFile 或可序列化类 Deserialize 调用的 dll 将引发错误。

calling dlls error: this file or its dependences are not found
Deserialize error: System.InvalidOperationException

我们在 .NET 2.0 上没有这个问题。升级到 .NET 4.0 后出现。

【问题讨论】:

  • 您的应用程序文件夹下似乎缺少一些 DLL...
  • 您是否将客户端和服务器计算机升级到 .net 4.0?
  • Dll 在那里。从服务器机器上运行不是问题。

标签: .net networking


【解决方案1】:

我猜你将服务器机器升级到 4.0,而不是客户端机器?然后,当应用程序尝试加载一些系统 .dll 时,它无法在客户端上找到它们。

【讨论】:

  • 感谢您的提问。让我仔细检查一下客户端是否安装了 4.0。我的问题:dll 在服务器中,为什么客户端在客户端上寻找它们?谢谢。
  • 您的 .dll 在服务器上,但运行此程序的机器必须在运行的机器上有系统 .dll,因为并非所有 .dll 都与应用程序一起部署。要运行 .NET 应用程序,您必须在运行该应用程序的机器上安装整个 .NET(在您的情况下为 4.0)环境。
  • 客户端也安装了4.0。
  • 您的 .dll 中有 c++ 代码吗?如果是,那么您应该安装最新的可再发行组件。您将在 EventViewer 中找到解决方案,打开您的程序,然后查看未加载的 .dll 的详细信息。如果您在此处粘贴 .dll 名称,我可以提供更多帮助。
  • 不,我们没有 c++ 代码。所有代码都在 c# 中。 dll 不是系统 dll,它们是 dll(域)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多