none
Desabilitar segurança de diretórios RRS feed

  • Pergunta

  • Pessoal, criei um instalador utilizando o Visual Studio 2008. Esse instalador, cria algumas pastas dentro da pasta principal (outputdir), o problema e o seguinte:

    Quando instalado em ambiente Windows Vista ou Windows 7, ocorrem alguns problemas na aplicação devido às restrições de segurança das pastas.
    Gostaria de saber se existe alguma maneira de desabilitar essa restrição ou liberar para todos os usuário o controle total da pasta.


    Se alguém tiver alguma idéia, agradeço.
    segunda-feira, 15 de março de 2010 19:24

Respostas

  • Do projeto.

    Nas propriedades do seu projeto, tem um botão na Aba Application chamado View UAC Settings.

    Clica nele vai abrir um xml:

    <?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">
            <!-- UAC Manifest Options
                If you want to change the Windows User Account Control level replace the 
                requestedExecutionLevel node with one of the following.
    
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    
                If you want to utilize File and Registry Virtualization for backward 
                compatibility then delete the requestedExecutionLevel node.
            -->
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
     Aqui coloca true.       </requestedPrivileges>
          <applicationRequestMinimum>
            <defaultAssemblyRequest permissionSetReference="Custom" />
            <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
          </applicationRequestMinimum>
        </security>
      </trustInfo>
    </asmv1:assembly>



    Se sua pergunta foi respondida por favor marque a resposta como certa.
    terça-feira, 16 de março de 2010 17:31

Todas as Respostas

  • Vc deve elevar a permissão de sua aplicação.
    Vc deve modificar o arquivo de UAC no projeto para que ele precise de permissões de administrador quando executar.
    Se sua pergunta foi respondida por favor marque a resposta como certa.
    terça-feira, 16 de março de 2010 16:39
  • Danimar, arquivo UAC do projeto? Ou o UAC do Windows?


    Att.
    terça-feira, 16 de março de 2010 17:11
  • Do projeto.

    Nas propriedades do seu projeto, tem um botão na Aba Application chamado View UAC Settings.

    Clica nele vai abrir um xml:

    <?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">
            <!-- UAC Manifest Options
                If you want to change the Windows User Account Control level replace the 
                requestedExecutionLevel node with one of the following.
    
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    
                If you want to utilize File and Registry Virtualization for backward 
                compatibility then delete the requestedExecutionLevel node.
            -->
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
     Aqui coloca true.       </requestedPrivileges>
          <applicationRequestMinimum>
            <defaultAssemblyRequest permissionSetReference="Custom" />
            <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
          </applicationRequestMinimum>
        </security>
      </trustInfo>
    </asmv1:assembly>



    Se sua pergunta foi respondida por favor marque a resposta como certa.
    terça-feira, 16 de março de 2010 17:31