2015-11-13 24 views
1

我试图从destBackUpFolder删除所有文件,结果是所有的文件从文件夹除1个dll文件删除了,我得到一个未经授权异常说, 访问该dll文件被拒绝。我已经尝试了从网络的建议,通过设置文件属性为正常和删除文件,检查我的权限,并确保我的权限允许删除文件,但所有这些方法不起作用,为什么我得到未经授权的异常,甚至我的权限设置为完全控制?仅供参考,我正在使用Team Foundation Server进行我的开发版本控制,这里的问题与我的TFS相关吗?提前致谢。C#删除DLL文件具有完全的权限获得未经授权的例外

try 
{ 
    DirectoryInfo folderToBeDelete = new DirectoryInfo(destBackUpFolder); 
    folderToBeDelete.Delete(true); 

    if (Directory.Exists(backupFolder)) 
    { 
     Directory.CreateDirectory(destBackUpFolder); 
     result = CopyFileAndFolder(backupFolder, destBackUpFolder); 

     if (result) 
     { 
      ErrorMsg = "Copy process Failed,Your File has rolled back to previous version"; 
      IsErrorDetected = true; 
     } 
    } 
} 
catch (Exception) 
{ 
    ErrorMsg = "Error during roll up process"; 
    IsErrorDetected = true; 
} 
    //block of code where i trying to get my version number of the dll 
     Assembly _assembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["DllPathForBackUp"]); 
     Version versionNumber = _assembly.GetName().Version; 
     completeVersionNumber = versionNumber.Major + "." + versionNumber.Minor + "." + versionNumber.Build + "." + versionNumber.Revision; 
+0

也许该DLL正在使用?您的系统是否允许您手动删除该dll? –

+0

感谢您的快速回复,我不能手动删除DLL,我得到的消息说,该DLL正在使用。在这种情况下如何检查哪个进程正在使用我的dll。 –

+0

看看Process Explorer:https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx?f=255&MSPPError=-2147217396 –

回答

1

我使用的DLL当我与

Assembly _assembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["DllPathForBackUp"]); 

加载的dll到我的程序我改变这个代码

FileVersionInfo.GetVersionInfo(ConfigurationManager.AppSettings["DllPathForBackUp"]).FileVersion; 

现在我没有加载DLL到程序并得到错误,信贷给@Darren Gourley,谢谢!

相关问题