Schierholtz, who turns 31 on Feb. 15, split last season with the Cubs and Washington, which agreed to a deal on Aug. 18, four days after Chicago released him.
The left-handed hitter set career highs in 2013 when he had 21 homers and 68 RBIs for the Cubs. He has a .253 average with 52 homers in eight seasons with four teams, including Philadelphia in 2012.
Schierholtz, who will report to major league spring training, played for San Francisco against the Rangers in the 2010 World Series and returned to the postseason with the Nationals last year.
Texas announced the agreement Friday.