Tuesday, May 7, 2013

The "GenerateResource" Task Failed Unexpectedly

Shortly after setting up a RAM disk using the freeware version of Dataram RAMDisk to see whether Visual Studio 2010 might compile a huge solution faster, I began getting the following errors after relocating the system's temp files to the root of the RAM drive:
The "GenerateResource" task failed unexpectedly.
System.TypeInitializationException: The type initializer for 'Microsoft.Build.Utilities.FileTracker' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object.

I dug around and found numerous references to existing bug reports and a few workarounds. I tried unsetting the readonly file system attribute in my solution folder, setting the GenerateResourceNeverLockTypeAssemblies property in my project file to true or false to downgrade some security parameters, but ultimately it was the top answer here that did the trick.

I had set the environment variables for the RAM drive initially to just R:\, referencing the root of the drive. Apparently VS 2010 doesn't like this, so I simply created a new folder on my ram disk named TEMP, and then updated the environment variables accordingly:




Just to rule it out, and also because I hadn't rebooted Windows in a while, I also opened Control Panel => Programs and Features, and performed a Repair on Microsoft .NET Framework 4 Client Profile just in case the framework files might've gotten corrupted somehow, and then restarted.

Problem solved! Now on to see whether Joseph Fluckiger's experimentation which returned lukewarm results on performance of building to a RAM disk holds water for a solution with, say, dozens of projects.



Wednesday, February 20, 2013

Left and Right Double Quotation Marks

Often I find myself wanting to use left and right double quotation marks rather than the generic ones.

Especially if you happen to be quoting someone, it adds a touch of class to use these rather than their boring unicode counterparts. This site outlines the differences between the two, and for convenience I'm posting each here so that either one can be easily copied and pasted:
 
 
 Left quotation mark. Hold down ALT and hit 0147 on your numeric keypad.

 Right quotation mark. Hold down ALT and hit 0148 on your numeric keypad.


Below is as an animated GIF showing each of the left and right double quotation marks as well as the plain old unicode ones in CharMap, and keystrokes you can use to type the former if you're so inclined:

A handy animated GIF outlining them all.
 


 

Saturday, February 16, 2013

Block Reddit Ads, Part Deux

In my previous post I outlined a method to block Reddit ads. 

It worked, until I tried hitting Reddit early this morning.

It appears that the ad structure is slightly different, now the following element hiding rule in the Element Hiding Helper of AdBlock Plus should do the trick:

reddit.com###siteTable_organic.organic-listing


This ought to work until they decide to change up their site structure once again. 

UPDATE: Apparently, the developer of AdBlock Plus has decreed that Reddit ads will from this point forward be whitelisted, stating that Reddit ads meet their 'acceptable ads' guidelines, necessitating custom rules like I describe above. To me, this is a bad idea, especially since even bigtime advertisers like Yahoo, Fox, and Google have inadvertently helped malware procreate through ads.