Multi-Context Systems (MCS) are a versatile and powerful framework for heterogeneous, nonmonotonic knowledge-integration. MCS allow information exchange between legacy information systems, i.e., knowledge bases. Inconsistency occurs easily in such scenarios since it is impossible to foresee all effects and consequences of the information exchange. Inconsistency makes an MCS useless, just as in other formal systems; thus, inconsistency management is a major issue. Resolving inconsistency by purely technical means is guaranteed to yield a consistent system, but it can easily result in a system where the remaining information exchange leads to unwanted or even dangerous conclusions. Consider, for example, an MCS that is employed in a hospital and the billing subsystem became inconsistent because of a patient with insufficient insurance. Automatically resolving the inconsistency by declaring the patient to be healthy and sending her home instead of administering proper treatment surely is a solution, but it hardly is a valid one. On the other hand, manually resolving all inconsistencies is not feasible since there usually exist too many possible resolutions to consider each of them individually. This thesis therefore addresses the issues of inconsistency management in MCS with a focus on using preferences to identify and automatically select preferred and valid resolutions of inconsistency, to aid a human operator by significantly reducing the number of possible resolutions to consider. The novelty of this approach is on the one hand a technique to enable meta-reasoning about inconsistency resolutions within the MCS framework, i.e., preferences expressed in any knowledge formalism can be incorporated to identify preferred resolutions and filter unwanted ones. On the other hand, an extension of the MCS framework is introduced to enable the use of legacy inconsistency management methods directly at each information system. This thesis consists of three main parts. The first investigates basic notions to identify and explain inconsistency in MCS. These notions are called diagnosis and explanation of inconsistency. Refined notions are investigated and shown to be reducible to the basic notions, and splitting-set based conditions are analyzed which allow to modularly obtain diagnoses and explanations from parts of a given MCS. Finally, a logic program is given that computes all explanations of an MCS. The second part of this thesis is dedicated to the identification and selection of most-preferred diagnoses and the filtering of unwanted diagnoses. Several transformation-based approaches are introduced which allow a transformed MCS to reason about the diagnoses of the original MCS, i.e., these approaches enable meta-reasoning on diagnoses in MCS. The necessary extended notions of diagnosis are shown to be of the same complexity as the basic notion, except for one, which is of higher complexity but still shown to be worst-case optimal. Therefore, the new meta-reasoning approach incurs no unnecessary complexity-wise cost. In the third part, the MCS framework is extended to incorporate existing, formalism-specific methods of inconsistency management (e.g., belief revision for classical logics, or updates for logic programs). In such an MCS where each knowledge base comes with local inconsistency management, the overall system can only become inconsistent due to cyclic information exchange. Furthermore, the extended framework is reducible to ordinary MCS and checking consistency in the extended framework is of the same computational complexity as in ordinary MCS.