Для очень хорошего объяснения:
http://blogs.msdn.com/b/netcfteam/archive/2004/08/06/210232.aspx
(выдержка сверху)
Возникла некоторая путаница с сообщением об ошибке: «Не удалось найти сборку ресурса». По сути, это означает, что в программе произошло исключение. Ошибка не произошла, потому что не удалось найти ресурсную сборку. Сборка ресурса, которую он ищет, содержит сообщения об исключениях (строки), которые были бы полезны при отладке того, что пошло не так с программой.
Поскольку от пользователя никогда не ожидают увидеть это сообщение об ошибке, если программа работает должным образом и все исключения обрабатываются надлежащим образом, было решено (из-за ограничений размера), что сборка ресурса, содержащая эти строки ошибок, никогда не будет помещена в пользовательское устройство. Таким образом, основной целевой аудиторией этих строк ошибок являются разработчики, которые хотели бы отладить проблемы. Следовательно, когда вы выполняете развертывание F5 на устройстве, сборка System.SR.dll, имеющая эти строки ошибок, копируется на устройство, и разработчик может видеть сообщения об ошибках. Но если .Net Compact Framework установлен из распространяемого пакета или вы используете .Net Compact Framework, поставляемый с устройством (как это делал бы пользователь устройства), System.SR.dll на устройстве отсутствует. Следовательно, если приложение столкнулось с исключительным условием, которое не было обработано приложением, это сообщение «Не удалось найти сборку ресурса» будет показано пользователю.
Если вы не используете развертывание Visual Studio F5 на устройстве и по-прежнему хотите видеть сообщения об исключениях, вы можете добиться этого, взяв System_SR_ [Language] .CAB, где [Language] соответствует языку, на котором вы хотите чтобы увидеть появившееся сообщение об ошибке и щелкнуть файл cab, чтобы установить его