File Download Script for Visual Studio

download-progress-dialog.png

If you have some binary files you need for your Visual Studio project but you don’t want to add them to your version control system, here’s a PowerShell script that does the downloading for you:

download.ps1

Basically this mimics a very simple dependency management.

Source Repository: https://bitbucket.org/mayastudios/powershell-downloader/

Configuration

At the very top of the script, you define which files to download where.

For example, this downloads the x86 and the x64 version of a SQLite .dll file:

$base_url = 'https://mydomain.com/sqlite'
$files = @{
  '..\sqlite.dll' = "$base_url/x86/sqlite.dll"
  '..\sqlite_x64.dll' = "$base_url/x64/sqlite_x64.dll"
}

Entries must be separated by line breaks or semicolon (;).

Paths are relative to the location of the script file.

Usage

To include the script in your project, call it from your project’s Pre-build event.

For example, if you’ve placed download.ps1 in a folder called libs in your project, use this line to execute it:

powershell -ExecutionPolicy ByPass -File "$(ProjectDir)\libs\download.ps1"

That’s it.

When Does It Download

The script will download the files if:

  • they don’t exist
  • the script file is newer as the files (idea behind this: you’ve changed the file version to download)
  • a file named force-download.txt exists in the scripts folder and this file contains anything else but “false”

These rules are defined in the Needs-Downloading function.

File Path in Spotlight on OS X

When you click a search result in Spotlight, the item will open with its default program.

But what if you want to know the file’s path instead of opening it? Here’s how:

  • Hold down ⌘ + ⌥ to reveal the file’s path below the preview box appearing to the left of the search result list.
  • ⌘ + click, or ⌘ + ⏎, to reveal the file in the Finder.

PowerShell functions for the uninitiated (C# programmer)

Being a C# programmer, I recently found some use for Microsoft’s PowerShell (the cmd replacement). What’s nice about PowerShell is that it has full access to the .NET framework.

However, there are also some very pit falls when coming from C# (or any related programming language).

There’s one very mean pit fall when it comes to functions and their return values that – if you don’t exactly know how PowerShell works – makes you pull out your hair.

Read more →

Bug of the day: Acronis Drive Monitor

Although the Acronis Drive Monitor is a handy tool for keeping taps on your hard drives’ state, it also totally breaks USB 3.0 (at least on my Windows Server 2012).

Acronis Drive Monitor main window

Acronis Drive Monitor comes with a service called “Acronis Scheduler2 Service”. As long as this service runs, it somehow breaks access to my external USB 3.0 drives. If I try to copy files to my external drive, the progress will freeze after a minute or so (together with a explorer window trying to access the external drive).

Solution: Stop the service (USB drives will start working again immediately), or uninstall Acronis Drive Monitor completely.

How To Fix Multiple Items In The ‘Open With’ Menu in OS X

Did you ever get that annoying problem that in your “Open With” menu the same app shows multiple times?

Multiple items for the same app showing in OS X's "Open With" menu.

Fortunately, this is easy to fix. Just open up Terminal and paste in the following lines (all at once) to fix the problem!

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user && pkill Finder

Cause of the problem: When you delete an application, its entry in the “Open With” menu is not deleted. This also applies to app updates, where the old version of the app is deleted and replaced by a new one (which gets its own menu entry). The problem probably only occurs for non-Mac App Store apps.