Windows Store deployment file from folder instead of MSI - c++

I want to ask you a couple of questions i looked in internet and didn't found an answer though...
I have an application for windows 10 PCx64 (artifacts of a built project C++/x64)
Is it possible to create odrinary Windows Store deployment file from folder?
How to do that? As i see MS is pushing new 'universal applciations' concept. But i don't want to rewrite apps entirely to .net/c#/Universal Apps. I just want to change build process so it will produce windows store deployment file, not MSI
Thanks!

You will soon be able to create a Windows Store package for a Win32 app and deploy it through the Windows Store. You'll even get access to UWP APIs and services :)
Subscribe to the "Windows Developer Preview Programs" to get some fresh news about "Project Centennial".
https://devpreviewsignup.windows.com/

Related

Amazon WorkSpace Integration

I have few queries related to Amazon Workspace.
Q1) I am building a .net website from where I want to access the Amazon Workspace. What could be a better way to do so? Is it possible that I create a webpage in my website and from there I can access the Workspace desktop in an iFrame or something? or is there any API support for same?
Q2) Can we set some startup program in Amazon Workspace which initiates any application for eg: photoshop, whenever the Workspace is started?
I think you're missing the point of Amazon Workspaces - they are a virtual desktop solution (loosely similar to Citrix), which provides a Windows 7 or Windows 10 'Desktop Experience' running on top of Microsoft Windows Server 2008 and 2012 respectively.
So, to answer your questions:
Q1) I am building a .net website from where I want to access the
Amazon Workspace. What could be a better way to do so? Is it possible
that I create a webpage in my website and from there I can access the
Workspace desktop in an iFrame or something? or is there any API
support for same?
You don't want to embed a Workspace instance inside of a web-page, either as an iFrame or by using some other magic. It is probably possible, but you will need to jump through many, many burning hoops of death to achieve it.
If you want to access a web-page that you are building from the Workspace instance, treat Workspaces as just any other desktop and use Internet Explorer, Firefox, Chrome, Opera etc. to access the site.
If you are looking at how to access Workspace Instances, AWS have desktop clients for all major Operating Systems, as web-based version (not to be confused with the web-page that you personally are writing); alternatively, Workspaces can be accessed from physical PCoIP Zero-Client devices. Take a look at https://clients.amazonworkspaces.com/ for the full list.
Q2) Can we set some startup program in Amazon Workspace which
initiates any application for eg: photoshop, whenever the Workspace is
started?
Yes you can, configure a Group Policy Object in your underlying Workspaces Directory to start an application on logon.
However, if you are going to run something intensive such as Photoshop, I would recommend either the Performance or Graphics Bundles - see https://aws.amazon.com/workspaces/details/ for more information.

how to deploy c++ application and create setup file for my music player

I have developed one music player in C++. Now I want to create setup.exe for that application so that i can put that application for downloading for other users. When we download some software from website we get setup for installing that application. I want to know how can i create that setup file for me cpp application. Please help as soon as possible
For Windows platform
There are loads of solutions some free some not
personnaly I'd recommend wix (it's free, it uses windows installer technology) but for some it's overkill
checkout
http://wix.tramontana.co.hu/
for a great example/cook book
Others include
install shield http://www.installshield.com/ (used to have a cool debugger, but not free)
inno Setup (http://www.jrsoftware.org/isinfo.php)
Wise Installer (OK looks like it's dead!)
Do it by hand using ORCA (an MSI editor http://msdn.microsoft.com/en-us/library/aa370557(v=vs.85).aspx)
WIX 3.X (http://wix.codeplex.com/releases/view/115492)
You can also do this with the free edition of Advanced Installer. Here is 5 minutes tutorial showing how to do it: http://www.advancedinstaller.com/user-guide/tutorial-simple.html
To create projects of type "Simple" you don't need a license and you can deploy the package for commercial purposes too.

Automated build installer using team foundation service

I have started using the preview of Microsoft Team Foundation Service (TFS in the cloud, henceforth TFService) for a small project, and I'm currently setting up builds using the online build service included with TFService.
What I want to do is to add an installer of some kind. I've previously worked with InstallShield Limited Edition, WIX and Inno Setup and would like to keep using one of those if possible.
I've previously integrated Inno Setup as part of a build process (TFS 2010). This involved installing Inno Setup on the build computer, and adding a custom build task for running an inno setup script. The last part should be possible with TFService as well, because it's possible to create custom build process templates.
However, I realize that installing anything such as Inno Setup or InstallShield will not work with TFService, since it's not possible to install any 3rd party software on the build computer (it's just a cloud service running on some unknown virtual computer which I cannot access).
So my question is; is there a way to automatically create an installer as part of a build process running on TFService? For example, is the build service capable of building installshield projects out of the box (there's a license included with Visual Studio after all)? Or are there other ways to do this?
I have some experience with this trying to get WiX and InstallShield to work with Microsoft TFS Preview cloud service using their managed build agents. On these agents, you don't have administrator rights and you can't install software.
This currently rules out InstallShield which must be installed.
It is however possible to check the WiX binaries into source control and pull them down as part of your build.
WiX uses .wixproj files (MSBuild) to define their project compile activities. This references a targets file and other properties ( referencing registry values ) that won't exist when you deploy this way. A small bit of hacking will get all of these properties to resolve to workable values.
The one problem you may still have though (and I'm thinking TFS managed build environment ) is that you may have to configure your projects to skip MSI ICE validation suites. On the build machines, I played on the windows installer service was outright disabled and this prevented the tests from running.

Creating installer for a c++ windows service Dynamically

I have created a windows service which checks for the status of the printer.
The user can download this service from a website. I need to query for the status of printers used by this user. So when the user clicks on the download button I want to store the user information in a file which my service can use. The service will use this information to fetch the printers from the database. I want to include this file in my installer. So I have to create the installer at runtime(i.e. when the user click the download button on my website).
How can I create the installer for the win service dynamically using C#?
NOTE: my win service is written in C++. I know about WIX.
quite a few years ago, when I did some work with InstallShield, it was possible to specify in the installer project which file(s) you don't want to be compressed and packed into the .cab files (or whatever they are called nowadays) when generating the installation package. Such a file would be left as-is and separate in the package, and you could later replace it with another file with the same name (I think I actually did something of the sort). So you can have a dummy file when building the install package, and then replace it on the fly with the right one.
I am not familiar with modern tools, but am quite sure this functionality is preserved as it is quite useful.
In WiX you can create custom actions which are arbitrary code you write (You provide the .dll which can be built using C++). In the custom action you can generate your user/location customization file.

Windows Limited User Installation

I have a Win32 application that includes an EXE, an ActiveX control (DLL) and a COM server (EXE) and I am using Inno Setup 5 to build my installer. Many of our customers use limited user accounts where the user has no admin rights and because the COM components require to be registered (which writes to HKEY_CLASSES_ROOT), my setup file must run with elevated (admin) privileges. I think this in unavoidable (sadly, I can't use registration-free COM because of the EXE COM server I have). However, I would like to create an update installer that can be ran as a limited user and am looking for some advice.
What I am thinking is the following:
The initial setup (first time installation) installs the application into %ALLUSERSPROFILE%\Application Data\CompanyName\AppName instead of %PROGRAMFILES%. The COM components are registered as normal (as they won't already exist).
Subsequent updates (using a different Inno Setup script) will simply copy the new files into %ALLUSERSPROFILE%\Application Data\CompanyName\AppName. Hopefully even a limited user will have write access to this folder and as the COM components have already been registered, admin access won't be required.
This would mean that my customers could upgrade to the latest and greatest version without the hassle of using an Administrator account. Is this acceptable or is this likely to bite me on the backside? I'm pretty sure Google Chrome does something similar but as it has no COM components (as far as I can tell) even the initial setup can be as a limited user.
Any advice from others who have faced this issue would be very welcome indeed.
OK, I found a way to create a limited-user installation script with both my COM server and COM objects being registered per-user.
I am using the latest version of ATL (v9) that ships with MSVC 2008 to create my COM server and COM objects. Turns out that you can register the COM server per-user via the new /RegServerPerUser switch. I tested this with limited user accounts on XP, Vista and Windows 7 and it works perfectly.
Next, the COM controls. Again, ATL9 to the rescue. You can register a control per-user by ensuring that RegSvr32 calls your control's DllInstall function, passing it a command-line parameter of user. So, to register a control in this way you simply do:
regsvr32.exe /i:user /n MyControl.DLL
Again, I tested this on XP, Vista and Windows 7 and it works fine.
I then made the following changes to my Inno Setup script:
The default installation folder will be {pf} (i.e. C:\Program Files) if the user has Admin rights. If not, then it defaults to {commonappdata} (i.e. C:\Documents and Settings\All Users).
Register my COM server using the new /RegServerPerUser switch.
I removed the regserver flags from my COM objects and instead added support to call regsvr32 using the new 'user' switch.
All of these changes are easy to do using the Inno Setup {code} feature.
Thanks to Kim for setting me down the per-user COM install path.
I don't know for sure, but I seem to recall COM servers support per-user installation, and maybe that goes for EXE servers as well.
If so, change your registration code to write information to HKEY_CURRENT_USER\Software\Classes instead of HKEY_CLASSES_ROOT.
The COM infrastructure should do the lookup first per-user and then per-machine.
It's worth an experiment anyway.
If you dumped inno-setup and used MSIs - MSI files support the idea of limited user installation of patches. An administrator must authorize the initial install, thereafter, digital signatures in patch msi files are processed by the elevated msi service without requiring user elevation.
You can duplicate this basic idea yourself - during an initial administrative install, install a service component that has the necessary access. When processing patches, ask the service process to process the EXE COM server registrations.
You need to rethink your approache ... write access to a folder than can also allow for program execution by the same user is the cause for 99% of all virus/malware functionality. Please learn a little about Software Restriction Policy and the new App Locker behavior built into Windows 7 so that the computing infrastructure can move forward not backward.