0

参照として3つのdllを追加しました:Google.Apis、Google.Apis.Translate.v2、System.Runtime.Serialization

Form1には1行あります:

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に戻しました

私はWindows764ビットビジュアルスタジオc#2010プロ.net4.0プロファイルクライアントを持っています。

エラーが何であるかを理解することはできませんか?

4

1 に答える 1

2

上記のメッセージで報告されているこのエラーは、ソリューションまたはプロジェクトのbin\Debugフォルダーにあるローカルコピーが原因です。ソリューションをクリーンアップしようとしても、そのようなコピーは存続します。

これを回避するには、プロジェクトプロパティ内に参照パスを追加して、VisualStudioに正しいDLLを参照させる必要があります。残念ながら、ソリューション内に複数のプロジェクトがある場合は、完了するまでプロジェクトの参照パスを次々に設定する必要があります。

参照パスの設定方法を知りたい場合は、次の簡単な手順に従ってください。

1.プロジェクトを選択して右クリックし、[プロパティ]をクリックします。2.プロジェクトのプロパティで、[参照パス]をクリックします。3.フォルダを入力するか、DLLの正しい場所を参照して、[フォルダの追加]をクリックします。

DLLごとに、さまざまな場所でこれらの手順を実行する必要があります。同じプロジェクトプロパティの[ビルド]タブで出力パスを設定することを検討してください。これにより、DLLをそれぞれの同じディレクトリに出力できるため、同じ場所で最新のビルドをすべて見つけることができ、参照が簡単になります。

これは、このエラーの1つの理由にすぎないことに注意してください。しかし、それは言及されたアセンブリの間違ったコピーで何かをしなければならないことは確かです。

于 2012-04-28T22:14:00.777 に答える