I have created a qt installer and I am trying to set some icons on it,
Working on linux with the InstallerApplicationIcon I have managed the application logo to be displayed on each of Installer's page but building the same installer on Windows the Icon does not appear. I have tried several solutions with .ico or .bmp files but I have not managed to make it work
I found that in Windows 'InstallerApplicationIcon' without filename extension, but 'InstallerWindowIcon' needs it.
I have tried it on windows and it worked for me.
Inside my config directory I have two files Coffee.ico and document.png. The Coffee.ico is shown in the explorer for the installer icon, whereas the document.png is shown on every installer page on the top.
My config.xml basically looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>Your application</Name>
<Version>1.0.0</Version>
<Title>Your application Installer</Title>
<InstallerApplicationIcon>Coffee</InstallerApplicationIcon>
<InstallerWindowIcon>Document.png</InstallerWindowIcon>
</Installer>
Here is what I'll see:
Related
I am programming a Qt application in MS Visual Studio Community 2019. I am trying to add an icon to my application window with the following command, and I also have the corresponding file my_icon.ico mentioned in the .qrc file:
setWindowIcon(QIcon(":/my_icon.ico"));
When I build and run my program in VS, everything is perfect - the icon replaces the standard one. However, when I make a release and try to run the resulting stand-alone executable, the icon is NOT shown! This is particularly weird as images which I also mention in the .qrc file (pictures for buttons) are on their places.
I have tried to put my_icon.ico alongside the .exe file, but with no result.
I give up, please give me a clue what might be happening here.
Thanks to chehrlic, I understood that it was as simple as running the windeployqt.exe on the .exe file build by the Release configuration by Visual Studio.
This will link all required libraries dynamically.
Avoid using this tool while the .exe file is inside the Release folder as it will create many other files & folders near .exe file. I have copied my_app.exe to a fresh directory and ran the following command from it:
C:\Qt\5.14.1\msvc2017_64\bin\windeployqt.exe my_app.exe --release
See https://doc.qt.io/qt-5/windows-deployment.html for more details.
I would like to force my targetDir directory installation usign QT Installer Framework v. 3.0.
Currently this is my config.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
<Name>QSSWeb2Board</Name>
<Version>1.0.0</Version>
<Title>QSSWeb2Board</Title>
<Publisher>BQ Educacion</Publisher>
<ProductURL>https://bitbloq.bq.com</ProductURL>
<InstallerWindowIcon>bitbloq</InstallerWindowIcon>
<InstallerApplicationIcon>bitbloq</InstallerApplicationIcon>
<Logo>bitbloq.png</Logo>
<StartMenuDir>Bitbloq</StartMenuDir>
<TargetDir>C:/QSSWeb2Board</TargetDir>
</Installer>
It works well, but I can modify the target dir on the installer. I would like to set a fixed value that cannot be modified.
Self-solution:
On the installer script, adding this line:
currentPage.TargetDirectoryLineEdit.enabled = false;
Try to use installer.setDefaultPageVisible(QInstaller.TargetDirectory, false)
as in http://doc.qt.io/qtinstallerframework/qt-installer-framework-systeminfo-packages-root-meta-installscript-qs.html . Since the default page for the choice of the install directory will not be shown thus, the install directory path will not be modified.
Is there a way I can run the Qt application as an administrator? I have an auto-updater for my application. It needs administrator privileges to replace the files in Program Files folder and hence it requires administrator privileges.
Running your application with administrator privileges does not have a whole lot to do with Qt. There are two approaches.
The "simple" one is to manually set your application to run with administrator privileges. You can do so by right-clicking on the executable. Then on the "Compatibilty" tab, you can choose to "Run this application as an administrator" under "Privilege level".
However, if you automatically want to achieve the same, you will have to embed a manifest into your application. What you're looking for is to set the requestedExecutionLevel to requireAdministrator. A bit more information can be found on MSDN or in this Wikipedia entry on UAC.
For your application as built in Qt Creator, it means you will need to embed the manifest by including a reference to it in a Resource (.rc) file. This resource file can then be added to your .pro file by specifying RC_FILE = myapp.rc. An informative blog post on this very issue is this one, as well as this post on the QtCentre forum.
A very simple solution for this, if you're using MSVC toolkit, is to add the following into the project file:
QMAKE_LFLAGS_WINDOWS += "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\""
I am using Qt 5.12 msvc2017.
I've found this to be quite neat, as from what I see in generated Makefile, Qt is already adding some manifest related link flags, and this approach wouldn't interfere with already embedding manifest, as manually adding manifest from existing file.
Other manifest link options can be easily added. You can read the docs for VS compiler, and/or you can check what flags/options Visual Studio IDE has to offer in Project properties/Linker/Manifest File and then check Command Line section of the Linker to see how it adds them.
Not sure how would this be done in gcc or clang builds, it would probably require solutions provided by #H Aßdøµ, and #Bart.
From the article that referred to Mr #Bart:
Application Manifest
First, we have to prepare an application manifest file. This one below is for application that does not require administrator rights:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="2.0.2.0" processorArchitecture="X86" type="win32"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Second, we need the MT.exe tool from the Microsoft Windows SDK to embed this XML in our executable. To do it use the following command:
mt.exe –manifest MyApp.exe.manifest -outputresource:MyApp.exe;1
Automatic Manifest Embedding
Manually executing the mt command after each compilation is a tedious task. What about convincing qmake to do it for us? After studying the docs it looks like the following line should do the trick:
win32 {
WINSDK_DIR = C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A
WIN_PWD = $$replace(PWD, /, \\)
OUT_PWD_WIN = $$replace(OUT_PWD, /, \\)
QMAKE_POST_LINK = "$$WINSDK_DIR/bin/x64/mt.exe -manifest $$quote($$WIN_PWD\\$$basename(TARGET).manifest) -outputresource:$$quote($$OUT_PWD_WIN\\${DESTDIR_TARGET};1)"
}
The above code will automatically execute the mt.exe program from WINSDK_DIR and embed a manifest file that is located in the project root directory and named after project's target (ie. MyApp.manifest). That's all to adding a manifest, now let's move on and specify the version information.
Orginal post: http://blog.strixcode.com/2010/08/embedding-application-manifest-and.html
Im trying to learn to make a web installer using Windows Installer XML (WIX 3.5). I found this blog about using msbuild in .wixproj files to avoid the scenario where the installer ends up dropping the web project assemblies right in the root of the app instead of keeping them in the bin folder like they're supposed to be.
Here is the link to that:
<http://www.paraesthesia.com/archive/2010/07/30/how-to-consume-msdeploy-staged-web-site-output-in-a.aspx>
But after adding the MSBuild scripts in the .wixproj file, I don't know what to do anymore. According to the instruction after adding the MSBuild script:
"When that target runs, you'll see a .wxs file pop out in the .wixproj project folder. Add the generated .wxs to your .wixproj project so it knows to include it in the build."
I really don7t know what this means. How can I run the target? I tried to build it but there was no .wxs file generated in the .wixproj folder.
Am I missing something? Please help...
Assuming you have added the section from the tutorial:
<Target Name="BeforeBuild">
...
</Target>
The target will be run automatically when you build the project. The "BeforeBuild" target is one of the standard entry-points to add your own modifications to the build. The target will then generate a file (named [WebProjectName].wxs that is placed in the same directory as your wixproj file. Click on the show all files button in visual studio and right-click on the file and "Include in project" That will then include the wxs is your installer and when you next build it will have the correct folder/file structure.
Xcode 4 seems to have changed the deployment location of the application data which previously used to be in:
Users/INSERT_YOUR_USER_HERE/Library/Application Support/iPhone Simulator/
Does anybody knows where is it now?
Thanks,
Raj
PS: I am beginning to hate Xcode 4! Sick!!!
The Application is Sandboxed in the location you specified is correct.
/Users/INSERT_YOUR_USER_HERE/Library/Application Support/iPhone Simulator/
That is this is the place where the Application(.app file) the installation file will be there.
I was wondering that you were searching for the build file or the binary file(.ipa). In Xcode4 they have changed it. Previously in Xcode 3 versions the build file will be in the folder where you have created your Project along with all your .h and .m files.
Now the build file is in this Path
/Users/YOURUSER/Library/Developer/Xcode/DerivedData/YOURPROJECTNAME_SOMETHINGSOMETHING/Build/Products
EDIT: More simple solution would be In the left side Navigator window in the Project structure under the Products Folder you will find your app. Right click on that and select open in finder will you take you to folder containing your app .app file.
If you want .ipa file just drag and drop the .app file into itunes it will convert that into itunes file and again rightclik and show in finder will give you the ipa file
On my mac the folder never changed.
The sandbox of each application i have in the simulator can be found in:
${HOME}/Library/Application Support/iPhone Simulator/<SDK_VERSION>/Applications/<GUID>
If you right click on YOUR_APP_NAME.app file in xcode, it will take you to the sandbox folder.
You can find that in the following path:
/Users/User/Library/Developer/Xcode/DerivedData/Your-Project-Name/Build/Products/Debug-iphonesimulator/location.app