I have a bunch of static C++ libraries. Each of those has an associated property sheet that a project using the static library is supposed to import. The property sheet sets the library and include paths and may do other things, such as setting related preprocessor macros. It also imports the property sheets of the libraries it depends on itself, so that importing projects don't have to worry about transitive dependencies.
I have a library called libutil which contains basic utility functions. I have two more libraries, call them libfoo and libbar, both of which depend on libutil. Finally I have an app, call it app, which uses both libfoo and libbar.
libfoo's property sheet includes libutil's property sheet, as does libbar's. app's project then includes both libfoo's and libbar's property sheets.
And this means that libutil's property sheet is included twice, issuing MSB4011. I don't want this warning; the warning doesn't tell me anything I don't know, doesn't tell me that anything is wrong (because my setup is anything but unusual or dangerous), doesn't tell me anything about unexpected behavior (ignoring the repeated import is the right thing to do), and clutters my build output, but there is no way to disable or otherwise suppress it without a convoluted workaround that I'll post in the workaround section.