As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 13 years ago.
Poll: What is the best and easy to use installer to use with .NET 3.5 SP1 windows applications?
My vote is for:
Nullsoft Scriptable Install System - it's popular, easy to use and FREE
Nullsoft Scriptable Install System
(NSIS) is a script-driven Windows
installation system with minimal
overhead backed by Nullsoft, the
creators of Winamp. NSIS has risen to
popularity as a widely used
alternative to commercial and
proprietary products like
InstallShield. - Wikipedia
There is rich plugins directory for NSIS, where you can find for example a plugin for installing windows services.
http://nsis.sourceforge.net/Category:Plugins
Commercial alternatives:
InstallShield - probably the most popular one and the most expensive option
Wise - also very popular
Advanced Installer - new and nice, not that popular yet, but trending
Other:
WiX - could be very good if you can spent some time on the learning curve. It is used by many Microsoft products.
Inno Setup
List of Installation Software at Wikipedia
My personal preference is Advanced Installer, it has a nice GUI for creation and editing of projects which are XML files so fits into source control easily.
Innosetup is the fastest one I've used to make setup files quickly and easily (out of Nullsoft and VS), providing you get the designer that is a separate download.
In the past I've used both InstallShield and Wise. I wouldn't say that using either of them is a joy, but they get the job done for large Windows applications.
Of the two, I would generally favour InstallShield.
I very much like WiX, which is said to be the installer used by MS internally for Office.
I used NSIS on my first-and-last Windows project, and was quite happy with it.
You could use ClickOnce deployment, if your environment allows you to do so. (If it's convenient).
Actually any answer could apply to your question here, choosing the "right" installer never possible for "a windows application".
How many different machines are your going to install to?
How large is your application?
Does it have many dependencies? (Databases etc.)
What is the "level" of the users who are going to install your app? Are they system administrators who install apps for a living, or are they joe-random "Hey lets click install because it looks cool" types.
just my 2ct.
The one out of the box from Visual Studio 2008.
Nullsoft Scriptable Install System anytime... simply because of it's ease of use and more than that, it's free!
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am planning to automate some of the functionality of the GUI developed in Microsoft Visual C#.
I am new to Automation with GUI. Would be glad if you share your experience regarding GUI Automation and some of the tools available for the automation.
I plan to develop some programms / scripts in order to realise some of the functionality of the GUI
For automating Windows OS itself, the free AutoIT uses a BASIC type syntax for automation. It is not open source but development is continuing on AutoHotkey, which is open source. Either of these two can be used for Windows GUI Automation without much effort.
I think Microsoft would suggest you use Windows PowerShell, a task automation framework with support for WMI and COM for local and remote computers. Powershell is free. See this guide on performing Windows® UI automation tasks.
You tagged this question with Windows, Shell and Automation. None of these suggestions I made use C#, although AutoHotkey has community support for C# and Powershell is a .NET scripting/programming language.
I've recently done a research on exactly the same topic. I haven't found an ideal tool. Here are the tools I looked at:
QTP. This is the most famous, and so, you can find most answers to your questions in web. It supports function library, object repository, and various technologies. Developing scripts in QTP is slow because of different factors. Licenses cost big $$$. Uses VBscript (pah!)
Coded UI Test. It is a part of Visual Studio 2010 Premium and Ultimate editions. Also costs $$$. Provides function library and object repository features. You'll need some understanding of programming. Uses C# for developing tests (VB as an alt). Microsoft strictly recommends using their recorder to generate tests. Although, if you have some experience in automation, you understand, that using a recorder only is impossible for developing good tests. So you'll need to get into details of the generated code. And it generates a LOT of code. Anyway, it's nice.
Ruby + AutoIt. Costs 0$. I like using Ruby+Rspec+Watir for automating web interface. Very customizable, fast in learning, developing, and executing. Although, couldn't make Ruby+Rspec work with .NET good enough. I tried to use AutoIt to access WindowsForms, but it was very hard to debug and search why something doesn't work.
Ranorex. I didn't look at it much. It seems nice, works similar to QTP, costs $$$. I didn't have time to work with it more closely, and decided not to use it, because I didn't know what problem could arise during real automation (and I already had a QTP license).
I have had some success with the free, open source White. It's support is limited, but the docs have a good guidance section so you'll know pretty quickly it's right for you.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Given I'm:
a solo developer using VS2008 Professional
looking for Microsoft-produced source control (I'm aware there are alternatives)
looking to get away from Visual SourceSafe 2005
Is it correct that my only option is to drop ~$8k on Visual Studio Team System 2008 Development Edition ($5,469) + Team Foundation Server ($2,799) - in order to get the TFS version control component?
Reading the answers to other related questions it looks like routes to bringing the TFS price down is to either become a Microsoft Gold Certified partner or to take advantage of the ISV Empower program. I'd welcome any comments related to these options.
The top non-Microsoft solution looks to be Subversion + VisualSVN, but I'd really like to go the all-Microsoft route if I can possibly swing it.
The reason that I'd like to go all-Microsoft is that it's my preference to first try the stock solution, and then later try the alternatives with the benefit of that experience. Also, I've had the rare positive experience with SourceSafe. Or, maybe I'm just a closet MS fanboy. :-)
Also, does the picture change at all when VS2010 comes out?
Thanks!
P.S. I'm downloading VisualSVN now to give that a shot since there's no reason not to.
If you qualify for BizSpark, that comes with TFS.
Given you are an independent developer, and although I fully understand you wish to go the full-on Microsoft route, I can't stress highly enough that using one over the other won't mean as much to you at this point.
When I started using Source Control, I used VSS... much like many others on this site. After about 4 months, I quickly realized that there were many issues with it (namely, that it corrupted every 10 days or so, and that it caused my machine to lag horribly.)
I switched over to SVN and I do have to admit, I'm quite happy with the outcome. When you build your devleopment team to 2,3,4,5... then look into the expense. You'll find that you can get the same affect of Team Suite if you integrate SVN with something like fogbugz, or look at something like CodeSpaces
If you are a solo developer you might not need to go the TFS way. As the product name suggests it is for teams. I suggest take a dive into source control systems like Subversion + TortoiseSVN or Mercurial + TortoiseHg. You could even use a web based source control if it fits your needs, sometime like Launchpad.net
If you would say why you are so hip on getting it from Microsoft, we might better be able to help you?
Give SVN a try. Look at TortoiseSVN, AnkhSVN, and Visual SVN.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Background: I'm a windows developer at MegaCorp(tm) and I am getting new hardware soon.
Question: Are there best practices around setting up my developer software installs?
Details: I've got my main IDE (Visual Studio/SQL Management Studio), but there are also tools that I'm testing out, additional tools I can't live without, and future accomodations.
All my code is stored on a remote server in SourceSafe so I don't need to really accommodate for that, but I'll regularly jump into perl/python/php for separate/side tasks.
The only advice I can give you is set up your machine in a way you need it and you can work with and then save an image so that you can return to that state easily.
Also, don't forget to go and get all your SysInternals goodies. Oh, also remember to export your rss feeds before you upgrade.
You should also install the Windows SDK (which usually doesn't come with VS), as there are many useful tools there that can help during development.
If you plan to use .NET, look into Reflector and LINQPad.
If you plan to use ASP.NET or do any web development at all, look into Fiddler and Firebug
Use a VM image, then the project has a VM image that is version controlled.
Tools and OS are recoverable years later.
Your name will shine on asa voice of sanity and configuration management.
Get rid of SourceSafe
Seriously, don't store anything in SourceSafe. There are many other, better Version Management Systems out there. What's wrong with SourceSafe? I strongly urge you to consider reading the following posts:
http://www.codinghorror.com/blog/archives/000660.html
http://www.highprogrammer.com/alan/windev/sourcesafe.html
http://www.developsense.com/testing/VSSDefects.html
Especially the last one - it goes into lots of detail about the problems with VisualSourceSafe. What should you use instead? Wikipedia has a great comparison of many different Version Management Systems for you to compare. You can look here to find out which ones integrate nicely with Visual Studio.
vim - VI Improved
Beyond Compare - best diff tool.
If you use multiple machines (like
one for dev one for test)
Synergy is invaluable.
If you occasionally need to edit
icons Paint.NET is pretty good.
As everyone else says kill source safe.
I have to agree regarding SourceSafe, whether or not you have the ability to opt-out of using it or not will obviously affect your ability to addopt a new SCM tool but if you can I highly recommenf the free VisualSVN Server for managing subversion and / or hosting repositories.
If you are prepared to pay for the licence you can also buy the VisualSVN plugin for visual studio, as a student I can't afford that but I have used AnkhSVN which integrates with VS through the source control provider APIs providing a nice native looking interface in VS 08
Other tools I can't live without:
TestDriven.NET
DocProject for easy generation of MSDN-style code documentation. I believe it uses sandcastle to do the real work but sandcastle itself is difficult to use and this is the most sane UI over it I've seen and managed to get working without massive amounts of work.
Paint.NET for graphics work
TortoiseSVN is another really good SVN client that I use for doing things like merging to trunk because I am more familiar with the interface and I think it's nicer than AnkhSVN in some areas
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm not the best programmer so I found it was much easier to write a program as several separate executables, which occasionally call each other. But now I need an easy way to actually run them without writing detailed instructions like Run file one, wait until its completed and no longer in process manager before running file two, file three can be executed 15 seconds after file two has been created. Then Add a key to your registry. Etc. I figure there must be a good software out there where I can just drop all my exes in, tell it when to run them, and output one file for my clients to run. Any ideas?
Inno Setup is easy to use, free, open source and scriptable if you need it.
I've always had a good experience with NSIS
It's open source
It has a big community (and hence lots of plugins)
For simple things, its script-based approach is nice and easy
It's lightweight and fast
On the downside, if you want to do something more sophisticated, you need to use something that looks a bit like assembly language - very odd, and not particularly pleasant. Thanks for the comments about that - I'd forgotten all about it!
Inno Setup is simple, light-weight and covers a lot of ground. I've used it for 5-6 apps over the last 5 years and it never let me down. Highly recommended!
Before that I used InstallShield, which is one of these systems that are so complicated that they "offer" you to "utilize" their "professional services" to create your installations. In other words it's kind of a hack that only managed to build a customer base in the childhood of Windows because there was no competition. It's a bit like a 747 that runs like a Trabant.
The worst, by far, installer product I've worked with is "WISE for Windows Installer". This had me literally smash my mouse in the office floor in frustration. It is (or at least was, 4 years ago) utter crap and should be avoided at all costs. This is exactly the kind of software that those pesky license agreements are there for, else the publisher would be sued into oblivion...
Yes, two ideas:
If you're looking for a way to statically put files, registry keys, start menu shortcuts, et cetera on your customer's systems, you should be looking for an installer solution. Many of these exist, and choosing the best one mostly comes down to features and pricing. I happen to like Caphyon's Advanced Installer, and it does have a freeware version that looks like it might meet your needs, except for the ability to run executables at scheduled times (which would require the Windows Task Scheduler support only found in the Enterprise edition, which is in the ultra-expensive price range, comparable to InstallShield...)
If controlling the flow of events on your customer's systems is more important than getting the executables on the system, you may want to look into Automise, which is basically an ultra-friendly UI for creating scripts, which makes things like scheduling tasks quite easy.
Anyway, you can download trial editions of both pieces of software, to see which one (or possibly both) will allow you to do what you want in the easiest way, or at least give you some ideas on how to best serve your customers. It may turn out that simply adding a new, 'supervisor' executable to take care of registry keys, scheduling, etc. could solve the problem without any third-party add-ons...
WixEdit is an open source (install shield like) authoring tool that uses the Wix Runtime from Microsoft.
Wix Tutorials
If you don't have any specific requirements apart from being able to install a few executables, then basically anyone will do. I'd recommend NSIS, not because it is particularly easy to work with (it has a cumbersome assembly-like language which isn't to practical to do more complex things in), but because it is free, has a large and active community, and it generates fast installers with very low overhead. As an extra bonus, you can run the compiler (i.e. the tool which generates the installer) on Linux.
Edit: ...and whatever you do, do NOT use InstallShield.
The ones I've worked with are:
InstallShield
NSIS
INNO Setup
Custom created installer
My preference is INNO Setup. It's free, it's easy.
I heart wix, MSFT's open source, declarative (XML) based toolkit for building MSIs.
It's ace.
If you want to install binaries, add reg keys and even run "custom actions" (have your own code execure during install) you should have a look at it. Then you'll have a one-click (msi) solution. Good eh?
Definately Wix. :)
Wix allows you to do the most things with ease and the difficult things without hacks, it's free and open-source.
You can use Wix within Visual Studio (using Votive) or you can use it using the .Net SDK, MSBuild and your favorite XML editor. Wix supports creating MSI installers, MSP patches, MSM Merge modules, Wix libraries and much more.
You should take a look at InstallJammer. Not only is it free, it's cross-platform and very easy to use. Most common actions don't require any scripting at all, but with a powerful scripting language underneath the hood, you can make an install do just about anything you want.
If all you want is a basic installer to install your application, you can have it built in a matter of minutes from the first time you start it up. If you want something more powerful, the capabilities and documentation are excellent.
If you're not after an installer (which is doesn't sound like you are) Why not just write a program to do what you need?
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to implement an "automatic update" system for a windows application.
Right now I'm semi-manually creating an "appcast" which my program checks, and notifies the user that a new version is available. (I'm using
NSIS for my installers).
Is there software that I can use that will handle the "automatic" part of the updates, perhaps similar to Sparkle on the mac? Any issues/pitfalls that I should be aware of?
There's now a Windows port of Sparkle, see http://winsparkle.org.
There is no solution quite as smooth as Sparkle (that I know of).
If you need an easy means of deployment and updating applications, ClickOnce is an option. Unfortunately, it's inflexible (e.g., no per-machine installation instead of per-user), opaque (you have very little influence and clarity and control over how its deployment actually works) and non-standard (the paths it stores the installed app in are unlike anything else on Windows).
Much closer to what you're asking would be ClickThrough, a side project of WiX, but I'm not sure it's still in development (if it is, they should be clearer about that…) — and it would use MSI in any case, not NSIS.
You're likely best off rolling something on your own. I'd love to see a Sparkle-like project for Windows, but nobody seems to have given it a shot thus far.
Google Chrome auto-update is based on Omaha:
http://code.google.com/p/omaha/
Their overview has a great section on why it was needed:
The browser typically prompted the user with a long series of techy, confusing and scary dialogs all trying to convince the user not to install. Then the user was prompted with a wizard filled with choices that they did not need to or know how to decide amongst. These factors combined to form a bad user experience and large drop-off during the app installation process
It's a good idea to use a third-party solution, cause autoupdates can be a pain, especially with Windows Vista/7 (UAC). For what it's worth, the product my company uses is AutoUpdate+ and it seems to work fairly well.
For .NET, a while back Microsoft Patterns + Practices published the Application Updater Block. This was (to my mind) rather overblown and over-engineered, but did the job quite well.
In essence it used a "stub loader" to check a manifest and a Web service to see if a later version of the program than the one installed was available, then used the BITS background downloader technology to download a new version if one was available on the server.
Once the new version was downloaded and installed (with .NET this is as simple as an xcopy to the relevant folder), the application would update the manifest. The next time the program was loaded the new version would be launched.
While the Patterns + Practices code is .NET specific, there's nothing there that couldn't be copied for a non-.NET application, especially if you have the ability to silently run the install process in the background.
If your application is written in .Net, you could try ClickOnce. However, it's difficult to perform administrative or custom actions during install using this approach.
wyUpdate looks really nice. See video here:
http://wyday.com/wybuild/help/automatic-updates/
For .NET applications you might want to have a look at NetSparkle, a Sparkle variant for .NET programs. It is pretty new (from 2011) and developed actively.
Just came here from an answer to my own question on the same subject - I mention one other updating solution in my question. It uses a stub loader, and an xml file to point to the latest executable.