C#使用完全权限删除DLL文件获取未经授权的异常
我正试图从C#使用完全权限删除DLL文件获取未经授权的异常,c#,dll,tfs,directoryinfo,unauthorizedaccessexcepti,C#,Dll,Tfs,Directoryinfo,Unauthorizedaccessexcepti,我正试图从destBackUpFolder中删除所有文件,结果是除1个dll文件外,所有文件都从文件夹中删除,我收到一个未经授权的异常表示对dll文件的访问被拒绝。我已经尝试了从web上的建议,将文件属性设置为“正常”,并逐个文件删除,检查我的权限,确保允许我删除文件,但所有这些方法都不起作用,为什么即使我的权限设置为“完全控制”,我也会收到未经授权的异常?FI,我在开发版本控制中使用 Team Foundation Server < /强>,这里的问题与我的TFS有关吗?提前谢谢 try {
destBackUpFolder
中删除所有文件,结果是除1个dll文件外,所有文件都从文件夹中删除,我收到一个未经授权的异常表示对dll文件的访问被拒绝。我已经尝试了从web上的建议,将文件属性设置为“正常”,并逐个文件删除,检查我的权限,确保允许我删除文件,但所有这些方法都不起作用,为什么即使我的权限设置为“完全控制”,我也会收到未经授权的异常?FI,我在开发版本控制中使用<强> Team Foundation Server < /强>,这里的问题与我的TFS有关吗?提前谢谢
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;
当我将dll加载到我的程序中时,我正在使用dll
Assembly _assembly = Assembly.LoadFrom(ConfigurationManager.AppSettings["DllPathForBackUp"]);
我将此代码更改为
FileVersionInfo.GetVersionInfo(ConfigurationManager.AppSettings["DllPathForBackUp"]).FileVersion;
现在,我不必将dll加载到程序中并获得错误,这要归功于@Darren Gourley,谢谢 也许dll正在使用中?您的系统允许您手动删除dll吗?感谢您的快速回复,我也不能手动删除dll,我收到消息说dll正在使用。如何在这种情况下检查哪个进程正在使用我的dll。查看process Explorer:手动还是编程?您好,我找到了原因,dll文件被Microsoft Visual Studio devenv.exe中的exe文件使用,当我试图删除dll文件时,由于devenv.exe,我无法访问dll文件,我是否可以从devenv.exe解锁文件?