Rodriguez, a 24-year-old who has 45 caps for Switzerland, joins the Serie A giants from Bundesliga side Wolfsburg, where he has played since 2011.
Milan, recently sold to Chinese investors by long-time club owner Silvio Berlusconi, have already bought Ivorian forward Franck Kessie (Atalanta) and Argentinian centre-back Mateo Musacchio (Villarreal).
Milan finished sixth in Serie A to seal a place in next season's Europa League.