这是我以前从未见过的问题。每当我在我的应用程序中运行某个命令时,我都会收到错误:
Could not load file or assembly 'CADB.Data'. The system could not find the file specified.
当我在调试器中运行命令时,我没有收到此错误。系统成功完成该过程。只有当我运行内置的.exe时才会这样。 .exe在我的调试文件夹中,包含所有必需的DLL(Copy Local = True),包括问题DLL(CADB.Data)。
当系统运行此命令时,它处于模拟状态。我将Debug文件夹(包含.exe和DLL)放入模拟用户具有完全访问权限的文件夹中。我在文件属性的“安全”选项卡中检查了访问权限,用户可以完全访问文件夹AND CADB.Data.dll。不过,我收到上面的错误消息。当我通过模拟用户无权访问的任何其他文件夹运行程序时,我得到一个稍微不同的错误:Could not load file or assembly 'CADB.Data'. Access is denied.
通过另一个工作站上的调试器运行应用程序也会引发错误。该错误发生在方法GetClaimGuidList的声明中,该方法是CADB.Data(下面)的成员。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using CADB.Data;
namespace CADB.BusinessServices
{
public class ClaimHelper
{
static public List<Entities.Claim> GetClaimGuidList(int caseId, bool includeNotices)
{
DataTable dt = ClaimCmd.GetClaimGuids(caseId, includeNotices);
return Utilities.MapDataTableToList<Entities.Claim>(dt);
}
}
}
尝试了其他事情:
有人可以帮忙吗?任何想法将不胜感激。感谢。
答案 0 :(得分:0)
出于某种原因,模拟用户无权访问bin文件夹中创建的应用程序文件。我转到该文件夹的安全属性,并将该用户添加到具有完全访问权限的文件夹中。这使我们能够绕过错误。为什么用户无法访问CADB.Data DLL仍然是一个谜。无论如何,已发布的ClickOnce应用程序中没有该问题。