How do I add CRRedist2008_x86.msi to Visual Studio Deployment Project? - windows

I need to add CRRedist2008_x86.msi to my deployment project as it is a requirement for my app. However, I want it to run automatically. I don't want it to be just added as a file and then the user has to click on it for it to run after my app installs. Can someone guide my on how to do this? It seems like it should be very easy but for some reason I am missing something.

What you need to do is set it up as a "merge module" in your deployment project. Instead of the .msi, find the.msm file that should be available on the CR website. Then in your deployement project, right click the Project and select Add->Merge Module. Browse for the file and you are set.
When the installer runs, it will automatically unpack the crystal reports related items and install them for you. You may also need a key file, depending on the licensing of the application involved.

Related

Open prepopulated SQLite database in Cordova

I am developing a cross platform (Android, IOS, WP) application that needs to have a relatively large prepopulated database. I am using Visual Studio 2013 with Cordova plugins.
Most answers on the internet point here or here. However these links always start with "copy your prepopulated database to the assets folder".
In my Visual Studio project, there is no assets folder. This is what I have:
How should I go about this? Preferably the solution should work on all platforms. Thanks.
No need to copy or to insert the values at first run of your app.
Instead use openDatabase with createFromLocation param as described here:
http://redwanhilali.com/ionic-sqlite/
The SQLite forces you to create THE COMPLETE Database executing "Create Tables" commands in a function inside the App, right?
That function ONLY executes if the Database DON'T EXIST. If already exists = don't execute that function!
So... to the "CREATE TABLE" commands, add "INSERT INTO" commands with what you need to populate! This will only execute the first time.
If you want a cleaner code, you can put all the data in an Array and then execute the Inserts with a For Loop.
(I did this in many Apps and worked like a charm!)
ADDED:
To solve "Code Brevity" I suggest 2 Options:
Option 1 - XML File: Add an external XML file with the info, and just read it in the "create db" function, and execute the "inserts" in a For Loop reading the XML file.
Option 2 - create a special js file (name it "populateDB.js" for example!) and enter all the code there... you won't see the code again!
I hope it helps because you cannot include a DB in your project, you HAVE to create it on the device...
I like your question. It made me think about an upcoming project and how I am going to solve a similar issue.
The link you shared: http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html is a good place to start. The "assets" directory referenced isn't visible because, through Visual Studio you are looking at the Windows platform version of the code. Note, in the Xcode/iOS screen capture in the link you reference, the database file isn't in an assets folder, but rather "Resources" that roughly equates to assets within the Android project.
You will need a Mac and Xcode to build your project for iOS, this can not be done with Visual Studio or on a Windows machine. When the project is created by cordova with the "cordova platform create ios" command, you will see a resources directory and you can continue with your instructions.
Similarly, with Android you can open the Android project in Eclipse, or another editor/file browser and do the same. Myself, I am not brave enough (lack of experience) with Visual Studio to browse other platforms in a Visual Studio Solution.
ADDED NOTE: At http://gauravstomar.blogspot.com/2011/08/prepopulate-sqlite-in-phonegap.html be sure to read through the recent discussions/comments with regard to copying the file into place within the app. Appears to still work fine, but the process has changed slightly with newer versions of Cordova.
When using Visual Studio (and Phonegap), you cannot see assets folder. If you would like to develop prepopulated DB in Visual Studio, you had better apply sqlite plugin.
You need two plugins.
1) Cordova-sqlite-evcore-extbuild-free
2) cordova-plugin-dbcopy ->this plugin will copy your database to assets folder.
I think the following Git will help you.
https://github.com/ymochi/prepopulated-DB-for-hybrid-applications

Is it possible to deploy aspnet vnext to azure from a mac?

The kpm pack command needs the runtime for the server - is it possible to install windows runtimes on osx just for the pack and deploy?
Ok, it seems that in order to recognise that the deployment is an aspnet vNext project and to handle that as a 'ProjectK Web Application deployment', you have to make it look like it all came from Visual Studio (or at least that was the only way I managed to get it to work right now)...
I did this by taking an example one from somewhere else...
I took a simple single vnext web project .sln file and changed the project name and project GUID.
I took the .kproj Visual Studio project file and did the same.
There isn't much that needs to be changed - only the name of the project and GUID. It's nice that there isn't any file lists in there so I feel that this might end up as a once-only activity...
I did find that there are some project structure rules that seemed to make it break. You seem to have to have the sln file in the top level folder and a folder underneath for the web project. If there is ONLY a web project then this might seem overkill, but I tried collapsing everything up to the top with the sln file correctly pointing, but that didn't work.
The other thing that you need to make sure you have is a reference to "Microsoft.AspNet.Server.IIS" in the project.json dependencies. Without this, the AspNet.Loader.dll and bin folder don't get deployed.
Apart from that, I am now able to use Sublime Text (or whatever I want on osx), test using "k kestrel", checkin through git and it gets deployed automatically to an azure web site! yippee!
Actually this makes much more sense because it is letting the target decide upon the binaries it needs to satisfy the deployments. Next challenge might be to get it to pull 'my' libraries from a custom NuGet source to get my binary libraries in there and avoid uploading ALL of the source to the website!
Oh - and another tip: Quit kestrel with 'Enter' for a clean quit instead of Z which leaves the port listening but non-functional!

How do I Include a file in a release package that is not part of the project

I need to create a release / install package. There is a drop down box in VS that lets me create a release version for the project. So I hit the publish button and choose the CD option. Sure enough it publishes the a setup I need. I installed the application everything goes fine though I have no idea where on the target machine where the application ended up??? Trouble is my application has signed XML file that stores the public keys my application uses to enable features depending on what a customer is licensed to do. I would like the key file to be part of the package that is installed so I don't have to send it seperately. I have to send the license file but I was hoping to avoid confusion by only requiring the user to only have copy the license file to the local directory. Which brings up another question were is application installed I did a search and found nothing with my application name???? But thereis an icon onthe star menu and the applicaton seems to run just file
You probably deployed your application as a "ClickOnce" Application. It installs the program to an obfuscated folder in your users folder. On Windows 7 it winds up in something like "c:\users\username\AppData\Local\Apps\2.0\somefoldername\somefoldername". If you need more control of the installation, the free InstallSheild LE that comes free with VS2010 is not a bad choice. It will let you add additional files as well.

Visual Studio: How to deploy a solution and continue developing it

I have a solution that I would like to run each day, but simultaneously continue development on it. While it is running, when I attempt to build a new version I receive the error that "Unable to copy file "obj\x86\Debug\Solution.exe" to "bin\Debug\Solution.exe". The process cannot access the file . . . ". This is perfectly understandable: the currently running version has a lock on the .exe, so a new one cannot be created.
My question is this: what is the best practice to "release" the current version to run each day, while keeping a separate "debug" version available for development? My current approach is to create a separate copy of the project, but that is very tedious. Is there a better way?
Thank you,
Ben.
Build a Release Version, run it from folder. (Set Solution Configuration to Release)
Develop and debug in debug mode.
Assuming this is a Winforms or WPF app you can right click on your project, click on Properties and go to Publish tab. From there you can publish your app to a UNC path, install from there and run it while continuing development from within the Visual Studio IDE.
Edit: Additional advantage of this approach is that when you have a new version you will be able to publish to the same location and the next time you start your app it will be automatically updated.
Are you using any source control system? It's not clear if your problem is simply the mechanics of making a build, or how to keep a copy of your source that corresponds to each build. If the answer is b, then a source control system is designed to solve this problem.
You would make a build each day and publish/release the binaries, while at the same time checking in your source code. That way you have a "copy" of your source code that corresponds to each released build, while still allowing you to continue active development.
I would use a post-build script to simply copy the resulting EXE to a new location. You can run it from there easy enough. You can even execute it in the script if you don't like double-clicking ;)

Windows Service Setup Project

I’m trying to create a set-up project for a windows service. I’ve followed this tutorial and many others like it but, after installing my service, I still can’t see the service. I’ve added the primary output of the service to the application directory and created a custom action to include this output on Install, Commit, Rollback and Uninstall.
It claims that it installs correctly.
Should this work? Is there anything else that I can try to get this to install?
Did you create an installer for your service? It is separate from a Setup Project.
See: http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceinstaller.aspx
You can create an Installer by right-clicking on your service's Design window and selecting Add Installer.
In my case, adding the installer was a first step as described by dhirschl's answer. I then needed to add custom actions to the setup project.
Right click the setup project/view/custom actions
then add the primary output to every folder there.
Source

Resources