Здравствуйте,
Чтобы можно было инсталлировать мою программу в "C:\Program Files\...", я прикрутил к ней манифест (здесь и в дальнейшем myprog — название моей программы):
myprog.exe.manifest
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly
xmlns="
urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="Myprog"
version="1.6.0.360"
processorArchitecture="x86">
</assemblyIdentity>
<dependency>
<dependentAssembly>
</dependentAssembly>
</dependency>
<trustInfo xmlns="
urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="
urn:schemas-microsoft-com:compatibility.v1">
<application>
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
<application xmlns="
urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware
xmlns="
http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
Манифест не помог, программу всё равно приходится инсталлировать в "C:\Myprog\". Может быть, дело в том что она
гадит пишет вспомогательные файлы в каталог, определяемый GetTempPath?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.