我得到异常Typeload可以是什么异常?

时间:2012-04-28 21:58:39

标签: c#

我添加了3 dll的参考:Google.Apis,Google.Apis.Translate.v2,System.Runtime.Serialization

在Form1中我有一行:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {


        public Form1()
        {
            InitializeComponent();


            Translator.translate(new TranslateInput());

        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

现在错误异常位于类Translator的第一行: 抛出错误的行是:var service = new TranslateService { Key = GetApiKey() };

班级代码是:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Web;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using Google.Apis.Util;
using Google.Apis.Translate.v2;
using Google.Apis.Translate.v2.Data;
using TranslationsResource = Google.Apis.Translate.v2.Data.TranslationsResource;


public class Translator 
{ 
    public static string translate(TranslateInput input) 
    { 
        // Create the service. 
        var service = new TranslateService { Key = GetApiKey() };
        string translationResult = "";

// Execute the first translation request. 
        Console.WriteLine("Translating to '" + input.TargetLanguage + "' ...");
        TranslationsListResponse response = service.Translations.List(input.SourceText, input.TargetLanguage).Fetch();
        var translations = new List<string>();
        foreach (TranslationsResource translation in response.Translations) 
        { 
            translationResult = translation.TranslatedText;
        } 
        return translationResult;
    } 
    private static string GetApiKey() 
    {
        return "AIzaSyCjxMe6RKHZzd7xSfSh2pEsBqUdXYm5tA8"; // Enter Your Key 
    } 
}

/// <summary>
/// User input for this example.
/// </summary>
[Description("input")]
public class TranslateInput
{
    [Description("text to translate")]
    public string SourceText = "Who ate my candy?";
    [Description("target language")]
    public string TargetLanguage = "fr";
}

错误是:

无法从程序集“Google.Apis,Version = 1.1.4497.35846,Culture = neutral,PublicKeyToken = null”加载类型“Google.Apis.Discovery.FactoryParameterV1_0”。

尝试谷歌寻求帮助,并尝试将项目类型更改为x64平台,但它没有帮助。所以我把它放回x86

我有Windows 7 64位visual studio c#2010 pro .net 4.0个人资料客户端。

无法弄清楚错误是什么?

1 个答案:

答案 0 :(得分:2)

上述消息中报告的此错误是由于解决方案或项目的bin \ Debug文件夹中的本地副本造成的。即使您尝试清理解决方案,此类副本仍将存在。

为了避免这种情况发生,您必须通过在项目属性中添加引用路径来强制Visual Studio引用正确的DLL。不幸的是,如果您的解决方案中有多个项目,则必须一个接一个地设置项目的参考路径,直到完成。

如果您想知道如何设置参考路径,请遵循以下简单说明:

1.选择您的项目,右键单击,然后单击“属性”; 2.在项目属性中,单击“参考路径”; 3.文件夹,键入或浏览到DLL的正确位置,单击[添加文件夹]。

您需要针对每个DLL的不同位置执行这些步骤。考虑在相同项目属性的“构建”选项卡下设置输出路径,以便您可以在每个目录的同一目录中输出DLL,从而确保在同一位置找到所有最新版本,从而简化了引用。

请注意,这只是导致此错误的原因之一。但可以肯定的是,必须对所提到的组件的错误副本做一些事情。