So I won’t forget: .NET Framework Libraries.
It contains the download links, setup instructions (for debugging, troubleshooting and source/symbols downloading) and licensing information.
–jeroen
Posted by jpluimers on 2012/09/06
So I won’t forget: .NET Framework Libraries.
It contains the download links, setup instructions (for debugging, troubleshooting and source/symbols downloading) and licensing information.
–jeroen
Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, ASP.NET, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2012/09/06
A while ago, I blew quite a few Visual Studio Solution and Project builds because I was experimenting in a suite of solutions with the Configuration Manager adding other Solution Configurations than Release and Debug, and mixing x86/AnyCPU platforms to facilitate Debug & Continue.
Lesson learned: don’t do that!
Keep it simple:
- Keep your Solution Configurations at Release and Debug,
- Perform conditional defines in your automated build server,
- Limit the mixing your platforms to a minimum.
We noted the anomalies a little late in the process (in retrospect, when taking over the solution suite, we should have started with setting up and Build Automation right at the beginning, then fix all the solutions that came from Visual Source Shredder, but alas: you are never too old to learn from your mistakes).
The anomalies were spurious (and hard to reproduce) build failures at developer workstations, wrong builds of assemblies ending up on the final build directories and more. And best of all: Visual Studio not failing, warning or hinting upon most issues.
The history in the version control system was not helpful enough to assist in fixing it, so the fix was this:
The last step is a lot more complex, because of a couple of reasons:
My workaround was as follows:
Finally, I get to the title of this blog entry: Visual Studio will always generate a directory when creating a Blank Solution, and does not support creating an Empty Solution in a directory.
There are many posts describing how to workaround this, but the actual downloads are usually gone because of link rot (Jakob Nielsen’s alert from 1998 still is totally right about it). Thanks to they webarchive.org WayBackMachine though for keeping some of them alive.
So I went with Peter Provost’s solution, and amended it from Visual Studio 2005 to all Visual Studio versions that support .NET that I have used or still use: 2002, 2003, 2005, 2008, 2010 and 2012 a.k.a. VS11.
All files are in Change set 89386 on BeSharp.CodePlex.com.
His solution uses the ShellNew command for .sln file extensions that is stored in the registry:
ShellNew is versatile, so you can also embed the fresh solution file into the .reg file, see this ShellNew article for a few nice examples.
Note that generating a new ShellNew verb for .sln is something other than loading a .sln (loading a .sln is done through VisualStudioLauncher).
Back to the .sln file: this one is different for any version of Visual Studio. Historically, the basic format is the same though (and I think this – in combination with VisualStudioLauncher – is the main reason it is not XML).
An empty solution file looks like this (note the empty line at the beginning), as described in Hack the Project and Solution Files:
Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 11 Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal
The accompanying .reg file like this:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.sln\ShellNew] "FileName"="Visual Studio Solution - VS11.sln"
When you look at the Format Version inside the .sln version, you see that it (12) is one bigger than the internal Visual Studio Version (11).
That is because Microsoft stepped up the internal version from Visual Studio .NET (2002) and Visual Studio 2003 from 7.0 to 7.1, but the solution file format version from 7.00 to 8.00 as the table below shows.
Note that the .NET 1.x versions of Visual Studio (2002 for .NET 1.0, 2003 for .NET 1.1) don’t have the GlobalSection/HideSolutionNode/EndGlobalSection part and the # Visual Studio xx line.
With a little bit of querying, I got at this table:
| Visual Studio version | Internal version | Solution file format version |
|---|---|---|
| Visual Studio .NET (2002) | 7.0 | Microsoft Visual Studio Solution File, Format Version 7.00 |
| Visual Studio 2003 | 7.1 | Microsoft Visual Studio Solution File, Format Version 8.00 |
| Visual Studio 2005 | 8.0 | Microsoft Visual Studio Solution File, Format Version 9.00 |
| Visual Studio 2008 | 9.0 | Microsoft Visual Studio Solution File, Format Version 10.00 |
| Visual Studio 2010 | 10.0 | Microsoft Visual Studio Solution File, Format Version 11.00 |
| Visual Studio 2012 (a.k.a. VS11) | 11.0 | Microsoft Visual Studio Solution File, Format Version 12.00 |
All files to get you going are in Change set 89386 on BeSharp.CodePlex.com.
It was a bit hard to get all those version numbers, so here are the sources I used:
–jeroen
Posted in .NET, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Development, Internet, link rot, Power User, Software Development, Visual Studio 11, Visual Studio 2002, Visual Studio 2003, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio and tools, WWW - the World Wide Web of information | Leave a Comment »
Posted by jpluimers on 2012/09/05
A very interesting (Dutch) article as PDF written by the Insite Advies people on “testing information systems and the usage of anonymized personal data”:
Artikel in Compact
Insite Advies heeft samen met ITCG (www.itcg.nl) een artikel geschreven met als titel ‘Testen van informatiesystemen en het gebruik van (geanonimiseerde) persoonsgegevens’.
Het artikel verscheen deze week in Compact (www.compact.nl).
Het artikel gaat in op de risico’s van het testen van de juiste werking van informatiesystemen met behulp van bestaande persoonsgegevens en legt uit hoe organisaties ten behoeve van testdoeleinden bestaande persoonsgegevens eenvoudig kunnen anonimiseren.
–jeroen
Posted in Database Development, Development, Software Development, Testing | Leave a Comment »
Posted by jpluimers on 2012/09/05
At the day of the Delphi XE3 release Piere le Riche released the download version of FastMM4 (now version 4.991) that is compatible with Delphi XE3.
change log:
Version 4.991 (3 September 2012)
- Added the LogMemoryManagerStateToFile call. This call logs a summary of
the memory manager state to file: The total allocated memory, overhead,
efficiency, and a breakdown of allocated memory by class and string type.
This call may be useful to catch objects that do not necessarily leak, but
do linger longer than they should.- OS X support added by Sebastian Zierer
- Compatible with Delphi XE3
Note:
The download is ready, but the FastMM source repository on SourceForge is not yet updated.
–jeroen
via: FastMM | Free Development software downloads at SourceForge.net.
Posted in Delphi, Delphi XE3, Development, FastMM, Software Development | 1 Comment »
Posted by jpluimers on 2012/09/04
Didn’t see this one on DelphiFeeds yet:
Help Test RAD Studio XE3 Support in GExperts 1.37 Beta 1 | GExperts.
Now please Thomas, can you create an experimental build too?
–jeroen
Posted in Delphi, Delphi XE3, Development, Software Development | 2 Comments »
Posted by jpluimers on 2012/09/04
I had a function like this in Excel:
=IF(OR(B2=""; SEARCH(C2;B2)); "ok"; "INCONSISTENT")
The situation should be OK when either:
B2 is empty (an empty cell is considered equal to a zero length string).C2 can be found in the value of cell B2Since most of my software development is outside of Excel, I’m used to short-circuit boolean evaluation.
Not with Excel: the OR is a function, not an operator, so all other function calls will be evaluated.
Since SEARCH will return #VALUE! when the first argument does not have a value, and #VALUE! propagates in a similar way as NULL in SQL does (SQL has the Boolean datatype inconsistency though).
So you need to get rid of #VALUE! as soon as you can using the one of the IS functions like the ISERROR function or the ISNUMBER function.
ISNUMBER, contrary to popular belief, not only distinguishes numbers from text, but in fact from any non-numeric value as Glaswegian kindly explained on the TechSupport forum:
Excel IF and SEARCH function combination
I am trying to do the following:
If cell A1 contains the characters “ABC” anywhere in the string or value, then “Y”, else “N”. I almost have it by using =if((search(“ABC”,A1)),”Y”,”N”). However, with the “else” if “ABC” is not found, it returns #VALUE! as opposed to “N”.
[…]
Try
=IF(ISNUMBER(SEARCH("abc",A1,1)),"Y","N")ISNUMBER checks the type of value and returns TRUE or FALSE. The #VALUE error refers to the fact that Excel could not translate the value to the type required.
So the code ends up as this:
=IF(OR(B2=""; ISNUMBER(SEARCH(C2;B2))); "ok"; "INCONSISTENT")
–jeroen
via: Excel IF and SEARCH function combination – Tech Support Forum.
Posted in Development, Excel, Office, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2012/08/30
Too often I see quesions like the one below on software that people distribute:
The Program can’t start becuase MSVCR100.dll is missing from your computer. Try reinstalling the program to fix this problem.
I am getting follwing error when i am trying to open Computer management in windows 7,the error is as follows ,
The Program can’t start becuase MSVCR100.dll is missing from your computer. Try reinstalling the program to fix this problem.
Where can i found this dll file, and help me to download and install.
The reason is that many programmers and companies still fail to ship the correct Visual C++ run-time.
Even for a one-off, you should need to get your installation set right. And writing stuff in a version of Visual C++ almost always means you need to ship the run-time for that particular version of Visual C++ with your application (though sometimes you can get away by putting the DLLs in the directory of your application, this is not recommended, as that way you won’t receive security updates).
User Marilyn O was so kind to sum up most of the download locations (I did a bit of post-editing, added all the non-“FamilyID” links, all naming differences are from the MS site):
I would install the Microsoft Visual C++ Redistributable dll that is needed for projects built with Visual Studio 2010.
Download the files below depending on your operating system version. […] Check in Programs and Features, do you show that you have installed Microsoft Visual C++ … Redistributable? If not, download from the links here.
- 2005: msvcr80.dll
- Visual C++ 2005 Redistributable Package (x86)
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE- Visual C++ 2005 Redistributable Packager (x64)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eb4ebe2d-33c0-4a47-9dd4-b9a6d7bd44da- 2008: msvcr90.dll
- Microsoft Visual C++ 2008 Redistributable Package (x86)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF- Microsoft Visual C++ 2008 Redistributable Package (x64)
http://www.microsoft.com/en-us/download/details.aspx?id=15336- 2008 SP1: msvcr90.dll
- Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
http://www.microsoft.com/en-us/download/details.aspx?id=5582- Microsoft Visual C++ 2008 SP1 Redistributable Package for (x64)
http://www.microsoft.com/downloads/en/details.aspx?familyid=BA9257CA-337F-4B40-8C14-157CFDFFEE4E- 2010: msvcr100.dll
- Microsoft Visual C++ 2010 Redistributable Package (x86)
http://www.microsoft.com/download/en/details.aspx?id=5555- Microsoft Visual C++ 2010 Redistributable Package (x64)
http://www.microsoft.com/download/en/details.aspx?id=14632- 2010 SP1: msvcr100.dll
- Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
http://www.microsoft.com/en-us/download/details.aspx?id=8328- Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)
http://www.microsoft.com/en-us/download/details.aspx?id=13523- 2012: msvcr110.dll
- Microsoft Visual C++ Redistributable for Visual Studio 2012 (3 downloads: arm, x86 and x64)
http://www.microsoft.com/en-us/download/details.aspx?id=30679
–jeroen
via: The Program can’t start becuase MSVCR100.dll is missing from your – Microsoft Answers.
Posted in C++, Development, Power User, Software Development, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio and tools, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | 3 Comments »
Posted by jpluimers on 2012/08/29
Just found a glitch in the unmap support for tf workfold (and found out it has already been reported).
First what I tried to do:
D:\develop.TFS02 into D:\develop\CodePlex\TFS02 using tf map (which BTW allows you to do in place branch switching).D:\develop.TFS02\besharp from TFSFirst a few things; the first one succeeded (as it implicitly uses the /map command), the last ones failed because /unmap is ambivalent on the /collection parameter: on the one hand it wants to do without, but when it discovers it cannot do without, it wrongly indicates it requires it.
D:\develop.TFS02\besharp>tf workfold /collection:https://tfs.codeplex.com/tfs/tfs02 /workspace:%COMPUTERNAME% $/ D:\develop\CodePlex\TFS02 D:\develop.TFS02\besharp>tf workfold /collection:https://tfs.codeplex.com/tfs/tfs02 /workspace:%COMPUTERNAME% /unmap $BeSharp The option collection is not allowed. D:\develop.TFS02\besharp>tf workfold /unmap /collection:https://tfs.codeplex.com/tfs/tfs02 /workspace:%COMPUTERNAME% D:\develop.TFS02\besharp The option collection is not allowed. D:\develop.TFS02\besharp>tf workfold /unmap D:\develop.TFS02\besharp Unable to determine the workspace. You may be able to correct this by running 'tf workspaces /collection:TeamProjectCollectionUrl'. D:\develop.TFS02\besharp>tf workfold /unmap /workspace:%COMPUTERNAME% D:\develop.TFS02\besharp Multiple workspaces exist with the name T61PJWP. Please specify the Team Foundation Server or qualify the name with the owner.
The workaround is to
–jeroen
Via:
Posted in .NET, Development, Software Development, Source Code Management, TFS (Team Foundation System), Visual Studio 2010, Visual Studio and tools | Leave a Comment »
Posted by jpluimers on 2012/08/27
One of the Enterprise SKU of Windows 8 is that it allows side-loading of WinRT apps. It gives you the opportunity to load internally developed Metro-style applications that use WinRT on Windows 8 without a developers license installed on that Windows 8 machine.
This feature was described on many sources, including:
But since many apps (including Delphi written apps as they cannot link to the Visual C++ Run-Time DLL) don’t directly run on WinRT, there is a clear demand of enabling this side-loading feature for non-Enterprise SKUs of Windows 8:
The last link describes a way to circumvent this, and I think that is what Embarcadero is aiming at to enable Delphi XE3 Metropolis style applications to run on WinRT:
Note I updated my Delphi WinRT link clearance post with the last two links.
–jeroen
Posted in Delphi, Delphi XE3, Development, Software Development, WinRT-with-Delphi | 2 Comments »