Find perfect matching whose weight is minimal, in polynomial time
Yes, there is a polynomial-time algorithm for your problem.  There's no need to use a LP or ILP; you can solve it directly using combinatorial, graph-based methods.  In particular, we can solve your problem by a reduction to the assignment problem, i.e., to computing a maximum weight matching in a weighted bipartite graph.

Suppose we have a bipartite graph with weights on the edge, and we want to find a perfect matching whose total weight is as large as possible.  Call this the maximum-weight perfect-matching problem.  You can solve this problem as follows.  Pick a large constant $C$ (sufficiently large); replace the weight $w$ on each edge with $w+C$ (i.e., add $C$ to each edge weight).  Now find the maximum weight matching in the resulting graph using the Hungarian algorithm or any other algorithm for maximum weight matching.  (Here the key fact we are using is that a maximum weight matching can be found in polynomial time.)

I claim that the resulting matching will be a perfect matching, if one exists.  Why?  Well, if a perfect matching exists, then its weight will be $Cn+\delta$, where $n$ is the number of edges in a perfect matching and $\delta$ is something bounded (it's the sum of $n$ weights from the original graph).  The weight of any non-perfect matching will be at most $C(n-1)+\delta'$, where $\delta$ is something bounded (it's the sum of at most $n-1$ weights from the original graph).  Suppose $C$ is at least $2n$ times the largest of the absolute values of the weights of the original graph.  Then $Cn+\delta$ will always be larger than $C(n-1)+\delta'$, or in other words, any perfect matching will have greater total weight than any non-perfect matching.  It follows that the Hungarian algorithm on this modified graph will find the maximum-weight perfect matching in the modified graph, and this corresponds to the maximum-weight perfect matching in the original graph (since we added the same constant to the weight of every edge).

So, there is a polynomial-time algorithm to find the perfect matching whose total weight is maximized.  Given this, we can solve your problem (find the perfect matching whose total weight is minimized) by simply negating all of the edge weights.