The build string is only used to break ties consistently if the package name, version, and build numbers are identical. If conda finds a package solution with two packages that differ only by build string it will print a message to the screen (something like
Warning: 4 possible package resolutions (only showing differing packages):
['r-chron-2.3_45-r3.1.3_0.tar.bz2', 'r-data.table-1.9.4-r3.1.3_0.tar.bz2'],
['r-chron-2.3_45-0.tar.bz2', 'r-data.table-1.9.4-r3.1.3_0.tar.bz2'],
['r-chron-2.3_45-0.tar.bz2', 'r-data.table-1.9.4-0.tar.bz2'],
['r-chron-2.3_45-r3.1.3_0.tar.bz2', 'r-data.table-1.9.4-0.tar.bz2'],
You can see in this example there are two versions of both r-chron and r-data.table that differ only by build string. Conda does pick one, and it breaks the tie using the build string (so it will be consistent between runs), but it's best to avoid this situation if possible. Under normal circumstances, if a package has a newer build number, it will be chosen over the version with the lower build number.
Aaron Meurer