我的Unity游戏将新版本的安装程序从服务器下载到AppData/LocalLow/MyProject/Temp
并尝试运行它。源可执行文件确实要求UAC以管理员身份运行。
PrivilegesRequired=admin
但是,当我将安装程序上载到服务器并下载时,出现错误消息“无法创建临时文件夹。访问被拒绝”。
FC says it is complete copy,但是一个正在请求许可-另一个没有。
我通过转换为
byte[]
并通过POST
发送文件来上传文件,下载-GET
反之亦然当我尝试自己运行此可执行文件时,也会发生这种情况。它只是不想向我要权利。
另外,作为解决方案,我试图强制我的游戏运行具有管理员权限的新进程:
如果使用Mono,则可以通过以下方式运行安装程序的进程:
new Process
{
StartInfo =
{
Verb = "runas",
FileName = Updater.GetPathToInstaller()
}
}.Start();
但是我需要使用IL2CPP,而Unity的IL2CPP还不包括
System.Diagnostics.Process
,因此我正在使用this solution运行我的安装程序。而且我不知道如何强制它与管理员一起运行。
安装程序 list :
я╗┐<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="JR.Inno.Setup" processorArchitecture="x86" version="1.0.0.0" type="win32"></assemblyIdentity>
<description>Inno Setup</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></supportedOS>
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></supportedOS>
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></supportedOS>
</application>
</compatibility>
</assembly>
“复制”的 list 相同
最佳答案
因此,我发现我的问题是由下载后设置为安装程序的LOW Integrety Level引起的。为什么?因为我将其下载到Application.persistantDataPath
文件夹的LocalLow
中。我将下载文件夹更改为持久性Application.dataPath
,并且在我的测试场景中位于桌面上,并且工作正常-安装程序的下载副本的MIC不低
当然,正如评论中提到的@MartinPrikryl一样,我仍然需要注册我的安装程序,以避免智能屏幕出现问题,但这不是我的“它不要求许可,但仍然需要”问题的解决方案。