わかりました、私はこれを理解しようとして何度も行ってきました。GraphicScriptWizard.exe
-i -F -w および -m オプションを使用して、PyInstaller バージョン 2.0 を使用して呼び出されるアプリケーションを構築しています。
-m オプションで使用するように定義したマニフェスト ファイルが呼び出されGraphicScriptWizard.exe.manifest
、次の内容が含まれます。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="x86"
name="GraphicScriptWizard"
type="win32"/>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
このマニフェストとコマンド ライン オプションを使用すると、昇格を要求する実行可能ファイルが取得されません。
完全を期すために、Pyinstaller によって生成される spec ファイルは次のとおりです。
# -*- mode: python -*-
a = Analysis(['GraphicScriptWizard.py'],
pathex=[<Full Development Path>],
hiddenimports=[],
hookspath=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name=os.path.join('dist', 'GraphicScriptWizard.exe'),
debug=False,
strip=None,
upx=True,
console=False , icon='SP.ico', manifest='GraphicScriptWizard.exe.manifest')
app = BUNDLE(exe,
name=os.path.join('dist', 'GraphicScriptWizard.exe.app'))
-m オプションを指定せずに pyinstaller でコンパイルし、次のコマンドを使用して mt を埋め込んでみました。
mt.exe -manifest GraphicScriptWizard.exe.manifest -outputresource:GraphicScriptWizard.exe;#1
これを行うと、アプリケーションから昇格のプロンプトが表示されますが、プログラムの実行時にエラーが発生します。
"Cannot open self <Full path to exe>\GraphicScriptWizard.exe or archive..."
私は本当に機知に富んでおり、Windows リソースとマニフェストに精通している人が、これについてもう少し詳しく説明してくれることを望んでいます。私のマニフェスト XML は間違っていますか? Pyinstaller を使用した私の方法論は間違っていますか?