Переименовал Assembly Name
От: hibloy  
Дата: 24.06.11 17:49
Оценка:
Производим рефакторинг приложений, даем сборкам красивые красивые корпоративные названия.
Главное административное приложение после переименования с AdminLoader в SY-IT Admin Loader, запускается загружает все библиотеки, о чем сигнализирует SplashScreen, и потом выдает ошибку при построение главного окна:
---------- EXCEPTION >>
MissingManifestResourceExceptionMessage: Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре. Проверьте правильность внедрения или связывания "SY-IT Admin Loader.Default.resources" со сборкой "SY-IT Admin Loader" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены.
Source: SY-IT Admin Loader
TargetSite: Void SetupDefinitionPage()
StackTrace:
в AdminLoader.AdminForm.SetupDefinitionPage()
в AdminLoader.AdminForm.AdminForm_Load(Object sender, EventArgs e)
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в SуCore.Windows.Forms.PersistentForm.OnLoad(EventArgs e)
в System.Windows.Forms.Form.OnCreateControl()
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.ContainerControl.WndProc(Message& m)
в System.Windows.Forms.Form.WmShowWindow(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Переименовываю обратно, все работает. Как исправить?
С остальными приложениями, такой проблемы нет...
Re: Переименовал Assembly Name
От: adontz Грузия http://adontz.wordpress.com/
Дата: 24.06.11 18:28
Оценка:
Здравствуйте, hibloy, Вы писали:

А поискать по resx файлам строку AdminLoader не догадались?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Переименовал Assembly Name
От: hibloy  
Дата: 26.06.11 17:28
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, hibloy, Вы писали:


A>А поискать по resx файлам строку AdminLoader не догадались?


НЕ ПОМОГАЕТ их ТАМ НЕТ!
Re: Переименовал Assembly Name
От: _FRED_ Черногория
Дата: 26.06.11 19:25
Оценка:
Здравствуйте, hibloy, Вы писали:

H>Производим рефакторинг приложений, даем сборкам красивые красивые корпоративные названия.

H>Главное административное приложение после переименования с AdminLoader в SY-IT Admin Loader, запускается загружает все библиотеки, о чем сигнализирует SplashScreen, и потом выдает ошибку при построение главного окна:

H>---------- EXCEPTION >>
H>MissingManifestResourceExceptionMessage: Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре. Проверьте правильность внедрения или связывания "SY-IT Admin Loader.Default.resources" со сборкой "SY-IT Admin Loader" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены.
H>Source: SY-IT Admin Loader
H>TargetSite: Void SetupDefinitionPage()
H>StackTrace:
H> в AdminLoader.AdminForm.SetupDefinitionPage()




А код "SetupDefinitionPage()" показать не с руки?
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Переименовал Assembly Name
От: hibloy  
Дата: 26.06.11 21:44
Оценка: -1 :)
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, hibloy, Вы писали:


H>>Производим рефакторинг приложений, даем сборкам красивые красивые корпоративные названия.

H>>Главное административное приложение после переименования с AdminLoader в SY-IT Admin Loader, запускается загружает все библиотеки, о чем сигнализирует SplashScreen, и потом выдает ошибку при построение главного окна:

_FR>

H>>---------- EXCEPTION >>
H>>MissingManifestResourceExceptionMessage: Не удалось найти ресурсы, соответствующие указанной культуре или нейтральной культуре. Проверьте правильность внедрения или связывания "SY-IT Admin Loader.Default.resources" со сборкой "SY-IT Admin Loader" во время компиляции, или убедитесь, что все необходимые сопутствующие сборки полностью подписаны и могут быть загружены.
H>>Source: SY-IT Admin Loader
H>>TargetSite: Void SetupDefinitionPage()
H>>StackTrace:
H>> в AdminLoader.AdminForm.SetupDefinitionPage()


_FR>…


_FR>А код "SetupDefinitionPage()" показать не с руки?


В нем нет проблемы.

protected void SetupDefinitionPage()
        {
            try
            {
                m_linkDSP = new LinkPage();
        m_linkDSP.Size = m_selectPanel.Size;
                m_linkDSP.BackColor = Color.SteelBlue;
                m_linkDSP.SetGradientBackground(Color.SteelBlue, Color.LightSteelBlue, false);
                m_linkDSP.Dock = DockStyle.Fill;
                
                /* Вылетает здесь*/
                m_linkDSP.SetTitleBar(Res.Default.GetString("AdminForm.DSOTitle"), false, "[IMAGE]SyAdm#Images.Icons.DS.DS.ico", Color.SteelBlue, Color.LightSteelBlue, Color.White); 
                /****/
                
                AddLink(m_linkDSP, "Images.DSN48.png", Res.Default.GetString("AdminForm.NDSLink"), new CustomLinkLabel.ClickedEventHandler(this.DCDS));
      }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                throw ex;
            }
        }

Рессурс менеджер Res.Default
        public static ResourceManager Default
        {
            get
            {
                if (m_defaultResources == null)
                {
                    m_defaultResources = ResourceUtils.GetNamedResourceManager(
                        "Default", 
                        Assembly.GetCallingAssembly());
                }
                return m_defaultResources;
            }
        }

ResourceManager:
        public static ResourceManager GetNamedResourceManager(string strResourceName, Assembly callingAssembly)
        {
            return new ResourceManager(callingAssembly.GetName().Name + "." + strResourceName, callingAssembly); 
        }

GetString()
public virtual String GetString(String name) { 
            return GetString(name, (CultureInfo)null); 
        }
public virtual String GetString(String name, CultureInfo culture) {
            if (null==name) 
                throw new ArgumentNullException("name"); 
            if (null==culture) {
                culture = CultureInfo.CurrentUICulture; 
            }
            ResourceSet rs = InternalGetResourceSet(culture, true, true);
            if (rs != null) {
                String value = rs.GetString(name, _ignoreCase); 
                if (value != null)
                    return value;
            } 
            ResourceSet last = null; 
            while (!culture.Equals(CultureInfo.InvariantCulture) && !culture.Equals(_neutralResourcesCulture)) {
                culture = culture.Parent;
                rs = InternalGetResourceSet(culture, true, true); 
                if (rs == null)
                    break; 
                if (rs != last) {
                    String value = rs.GetString(name, _ignoreCase);
                    if (value!=null)
                        return value; 
                    last = rs;
                } 
            } 
            return null;
        }
Re[3]: Переименовал Assembly Name
От: notacat  
Дата: 27.06.11 08:43
Оценка:
ну так поотлаживайте свой ResourceManager — кого он пытается грузить и откуда, и есть ли у вас такие ресурсы в сборке или там что-то с другим названием.
А вообще, красивые имена с пробелами вовсе не обязательно в AssemblyName засовывать, для этого есть всякие там AssemblyTitle и AssemblyDescription
Re[4]: Переименовал Assembly Name
От: hibloy  
Дата: 27.06.11 11:41
Оценка:
Здравствуйте, notacat, Вы писали:

N>ну так поотлаживайте свой ResourceManager — кого он пытается грузить и откуда, и есть ли у вас такие ресурсы в сборке или там что-то с другим названием.

N>А вообще, красивые имена с пробелами вовсе не обязательно в AssemblyName засовывать, для этого есть всякие там AssemblyTitle и AssemblyDescription

Самое интересное, что Default.resx лежит в корне проекта и добавлен в проект. Но всеравно ошибка выскакивает.
Re[5]: Переименовал Assembly Name
От: notacat  
Дата: 27.06.11 12:35
Оценка:
H>Самое интересное, что Default.resx лежит в корне проекта и добавлен в проект. Но всеравно ошибка выскакивает.
надо смотреть не на то, что добавлено в проект, а что получилось. Рефлектором или через ildasm проверьте, с каким именем ваши ресурсы добавились в сборку — и это ли имя вы в рантайме ищете.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.