2011-12-20 4 views
0

я получил эту ошибкуНе удалось загрузить файл или сборку «TranslationFormsApplication.TranslationForm.SavedData>» или один из его зависимостей

Не удалось загрузить файл или сборку « TranslationFormsApplication.TranslationForm.SavedData>» или один из его зависимостей. Неверный параметр. (Исключение из HRESULT:.. 0x80070057 (E_INVALIDARG)

когда я отлаживать код в C# SavedData это имя класса внутри другого класса

Ниже приведен пример кода

namespace TranslationFormsApplication 
{ 
    partial class TranslationForm 
    { 
     private class SavedData 
     { 
      public SavedData(int id, string s, string t) 
      { 
      index = id; 
      source = s; 
      translation = t; 
      } 
      private int m_index; 
      public int index { get { return m_index; } set { m_index = value; } 
     } 
    } 
} 

Стек ошибки, когда я пытался открыть конструктор форм, выглядит так:

at System.IO.Path.CheckInvalidPathChars(String path) 
at System.IO.Path.Combine(String path1, String path2) 
at Microsoft.VisualStudio.Platform.VsAppDomainManager.d__1.MoveNext() 
at Microsoft.VisualStudio.Platform.VsAppDomainManager.InnerResolveHandler(String name) 
at Microsoft.VisualStudio.Platform.VsAppDomainManager.ResolveHandler(Object sender, ResolveEventArgs args) 
at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName) 

I lo в папке x86/Debug /, и на самом деле нет файла TranslationFormsApplication.TranslationForm.SavedData.

Так как я использую Windows 7, я знаю, что мы должны очистить временные файлы ASP.net в C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ И все другие версии , а также в C: \ Windows \ Microsoft.NET \ Framework \ а также в C: \ Users \ Имя пользователя \ AppData \ Tmp \

Я сделал это, на самом деле нет «Временный ASP .NET Files ", которые я могу найти. Я также удалил папку bin/Debug и obj86/Debug, но это не помогает.

Весь доступ к классу выполняется внутри класса TranslationForm. Ниже приведены примеры:

частный словарь текстIndexes;

private void InitializeComponent() 
    { 

      this.textIndexes = new Dictionary<int,SavedData>(); 
    } 

    private void accept_Click(object sender, System.EventArgs e) 
    { 
     SavedData data; 
     if (textIndexes.ContainsKey(selectedIndex)) 
     { 
      data = textIndexes[selectedIndex]; 
      data.source = sourceEdit.Text; 
      data.translation = transEdit.Text;    
     } 
     else 
     { 
      data = new SavedData(selectedIndex, sourceEdit.Text, transEdit.Text); 
      textIndexes.Add(selectedIndex, data); 
     } 
    } 

    private void saveTrainingFiles() 
    { 
     foreach (KeyValuePair<int, SavedData> line in textIndexes) 
     { 
      SavedData data = line.Value; 

       sw.WriteLine(data.source); 
       sw2.WriteLine(data.translation); 
     } 
     textIndexes.Clear(); 
    } 

Когда я изменил код, чтобы использовать кортеж вместо класса SavedData, я получил следующее предупреждение:

Предупреждения 1 Данное имя сборки или кодовой недействительно. (Исключение из HRESULT: 0x80131047)

стек ошибка, когда я попытался открыть FormDesigner является:

1. Hide Call Stack 

at System.Reflection.AssemblyName.nInit(RuntimeAssembly& assembly, Boolean forIntrospection, Boolean raiseResolveEvent) 
at System.Reflection.AssemblyName..ctor(String assemblyName) 
at Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError, Boolean ignoreCase) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name) 
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.GetRuntimeType(String typeName) 
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.GetType(String typeName) 
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetType(String typeName) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(IDesignerSerializationManager manager, String name, Dictionary`2 names) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager manager, IDictionary table, Dictionary`2 names, CodeStatementCollection statements, String className) 
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager, CodeTypeDeclaration declaration) 
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager) 
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload) 

Я предполагаю, что это что-то делать с версиями .NET и также с использованием 64-битной машине , Любая идея, как разрешить это с использованием класса и без него?

+0

> Пространство имен TranslationFormsApplication > { > Код: частичный класс TranslationForm { частный класс SavedData { public SavedData (int id, string s, string t) { index = id; source = s; translation = t; } частный int m_index; общедоступный индекс int { { {modify}; m_index; } { m_index = значение; } } } – lita

+0

Спасибо Reniuz за его редактирование, я поставил 4 пробела, но он продолжал жаловаться, я думаю, мне также нужны 4 пространства для стеков ошибок, я удалил как коды, так и стек ошибок. – lita

+0

Возможный дубликат [Не удалось загрузить файл или сборку App_Licenses] (http://stackoverflow.com/questions/3831287/could-not-load-file-or-assembly-app-licenses) –

ответ

0

[Класс SavedData должен быть общедоступным для доступа, как TranslationFormsApplication.TranslationForm.SavedData

public class SavedData 

[UPDATE]:

На другой ноте, не должен быть код:

namespace TranslationFormsApplication 
{ 
partial class TranslationForm 
{ 
    public class SavedData 
    { 
     public SavedData(int id, string s, string t) 
     { 
     index = id; 
     source = s; 
     translation = t; 
     } 
     private int m_index; 
     private string m_source; 
     private string m_translation; 

     public int index { get { return m_index; } set { m_index = value; } } 
     public string source { get { return m_source; } set { m_source = value; } } 
     public string translation { get { return m_translation; } set { m_translation = value; } } 
    } 
} 
} 
+0

Я пробовал, но все равно получаю ту же ошибку. – lita

+0

Можете ли вы показать код, который вы используете для доступа к этому классу? –

+0

Я получаю доступ к этому классу внутренне, я напишу здесь пример кода, все коды помещаются внутри класса TranslationForm. – lita

Смежные вопросы

 Смежные вопросы