Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 请求管理员权限以编辑系统文件_C#_Privileges_Sharpziplib - Fatal编程技术网

C# 请求管理员权限以编辑系统文件

C# 请求管理员权限以编辑系统文件,c#,privileges,sharpziplib,C#,Privileges,Sharpziplib,我是C#新手,正在visual studio中开发一个windows窗体应用程序。该应用程序使用库更新zip的内容 当zip文件位于非系统分区内时,比如说像D:\myzip.zip文件会正确更新。但是,如果zip在系统分区中,C:\myzip.zip应用程序返回一个错误找不到文件C:\myzip.zip,即使该文件在那里 这与管理员权限有关,因为当我以管理员身份运行应用程序时,它可以工作 问题是,;默认情况下,我如何启用这些权限?您希望仅在您的计算机上默认启用这些权限吗? 因为在其他计算机上您不

我是C#新手,正在visual studio中开发一个windows窗体应用程序。该应用程序使用库更新zip的内容

当zip文件位于非系统分区内时,比如说像
D:\myzip.zip
文件会正确更新。但是,如果zip在系统分区中,
C:\myzip.zip
应用程序返回一个错误<代码>找不到文件C:\myzip.zip,即使该文件在那里

这与管理员权限有关,因为当我以管理员身份运行应用程序时,它可以工作


问题是,;默认情况下,我如何启用这些权限?

您希望仅在您的计算机上默认启用这些权限吗?
因为在其他计算机上您不能,这就是安全性的全部内容

您可以添加应用程序清单,使您的应用程序以管理员身份运行()

将以下代码添加到清单文件:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
 <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">       
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>

      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>    
        </application>
      </compatibility>
    </asmv1:assembly>

逐步添加应用程序清单:

  • 在解决方案资源管理器中的项目上单击鼠标右键
  • 单击添加新项目
  • 查找并选择应用程序清单文件:
  • 编辑应用程序清单文件:

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    
     <?xml version="1.0" encoding="utf-8"?>
        <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
          <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
            <security>
              <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">       
                <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
              </requestedPrivileges>
            </security>
          </trustInfo>
    
          <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
            <application>    
            </application>
          </compatibility>
        </asmv1:assembly>
    
    
    
    Please的可能副本,不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标签就是为了这个目的。我已经试过了,但是当我运行发布应用程序时,默认情况下它不会要求管理员权限;我的意思是,在不使用右键单击“以管理员身份运行…”@numediaweb的情况下,我一步一步地添加了如何将应用程序清单添加到应用程序中。检查一下。我已经在解决方案资源管理器中更新了
    app.manifest
    。。但是在玩了项目设置之后。。现在它工作了!我希望该应用程序在其他计算机(包括我的计算机)上运行时要求管理员权限,以便它可以写入内部文件,比如
    C:\ProgramFiles(x86)\…
    澄清问题应作为对初始问题的评论,而不是答案,否决