我正在开发两个由ClearCase管理的项目,这意味着对于Windows,看起来它们位于网络共享上。
第一个项目是在托管C ++中使用VS 2003编写的DLL,旨在为使用VS2003 C ++编写的一些旧版DLL提供托管接口。
第二个项目是用C#(.NET 3.5,VS2008)编写的,包含第一个项目生成的DLL,作为通过包装器使用旧DLL的参考。
现在,当我尝试启动C#项目时,收到以下错误消息:
FileLoadException未处理
无法加载文件或程序集 '(我的托管c ++包装器),版本=(版本 数量),文化=中立, PublicKeyToken = null'或其中一个 依赖。访问被拒绝。
查看详细信息,这是一个包含内部System.UnauthorizedAccessException的System.Io.FileLoadException(“访问被拒绝。(HRESULT异常:0x80070005(E_ACCESSDENIED))”
现在,当我将C#项目复制到本地硬盘驱动器时,即使托管C ++项目保留在网络驱动器上,一切正常。
之前我曾遇到过网络驱动器的权限问题,但在升级到.NET 3.5 SP1时这些问题已经消失了。我还尝试将All_Code代码组的权限集更改为.Net Configuration 1.1的“完全信任”。和互联网上建议的2.0一样,但这也无济于事。顺便说一句,我还检查了DLL是否只读,但事实并非如此。
提前感谢您的帮助!
更新:我还尝试使用强名称签署两个程序集并给予这些密钥完全信任但无济于事。必须有其他一些原因,但我没有想法。
答案 0 :(得分:0)
听起来您需要设置代码访问安全策略以允许此位置
http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx
按照本文下载1/3的说明(带截图):-) http://www.15seconds.com/Issue/040121.htm