x64 C# warning – Referenced assembly ‘System.Data.dll’ targets a different processor

Using Visual Studio 2010 C# to compile .NET project for Target Platform x64, the following two warnings appears:

------ Rebuild All started: Project: TestProject-64-bit, Configuration: Debug x64 ------
warning CS1607: Assembly generation -- Referenced assembly 'System.Data.dll' targets a different processor
warning CS1607: Assembly generation -- Referenced assembly 'mscorlib.dll' targets a different processor

Compile complete -- 0 errors, 2 warnings
Manager -> P:\Project Files\TestProject-64-bit\Test-x64.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

It is a bug in Visual Studio 2010, and warnings can be safely ignored. There are some bugs already filled in MS Connect. Suggestion is:
Edit the project file directly. Replace the references that are having this problem with explicit paths to the 64 bit ones, eg.,:
<Reference Include="$(Windir)\Microsoft.NET\Framework64\v2.0.50727\system.data.dll" />
<Reference Include="$(Windir)\Microsoft.NET\Framework64\v2.0.50727\mscorlib.dll"/>

Great suggestion, but it won’t work if you need to compile / build both for x86 and x64 platforms. And that is what I need.

MSDN Forum post suggests to disable warning:
Parameters Tab - Advanced - MSBuild Arguments, type /p:NoWarn=1607

It seems, that it is for Team Edition, it does not make sense for me, so I use:
Properties - Build - Suppress warnings: 1607

Currently must live with this hack, if you need to target both 32 and 64-bit platforms. Hope the fix will be released so we can remove warning suppression.

zlib 1.2.5 – fatal error LNK1120: X unresolved externals

When trying to link program to zlib 1.2.5 static library (zlib.lib), I got the following error:
fatal error LNK1120: X unresolved externals ...

Version 1.1.3 worked without any problems. Without going into details, here is what I did – using DUMPBIN.EXE I figured out that I am using __cdecl (/Gd) Calling convention, but zlib somehow overrides it with __stdcall (/Gz). Two hours letter I found that Visual Studio 2010 solution (zlib-1.2.5\contrib\vstudio\vc10\zlibvc.sln) has definition ZLIB_WINAPI.

Removing ZLIB_WINAPI solved my problem. To remove, it go to:
zlibstat Properties – Configuration Properties – C/C++ – Preprocessor – Preprocessor Definitions

Alternatively, you can comment out ifdef block – #ifdef ZLIB_WINAPI.

IPv6, literals and legacy software

IPv4 address exhaustion is slowly going into final phase.

To use IPv6 addresses in legacy software, some mechanism must be in place to not confuse programs with colons (:) in the addresses. For Windows this is IPv6 literals.

We have created IPv6 to literal online converting tool. It is a free tool to convert IPv6 to literal address ending with .ipv6-literal.net

For example, these two lines behave identically:
ping 0--1.ipv6-literal.net
ping ::1

Also, zone ID is supported and shortest / longest IPv6 address form is calculated.

IPv6 literal screenshot

For more information and to test this tool in action, click here!

Use form below, if you have suggestions or comments.

UPDATE Apr 26, 2011. As Takyoji suggested, just added support for Reverse DNS lookup. Now last row is calculated for use with the special domain ip6.arpa.