0

c# を使用してクイック ブックに新しい顧客を追加したい場合 、次のエラーが発生します: CLSID {178AACCA-9DCE-42A0-A193-CF4985B930E5} を持つコンポーネントの COM クラス ファクトリを取得できませんでした: 次のエラーが原因でした: 80040154。

ここにエラーが見つかったコードがあります..有効な答えを書いてください...ありがとう..

       try
        {

            //Create the session Manager object
            sessionManager = new QBSessionManager();

            //Create the message set request object to hold our request  
            IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US", 8, 0);
            requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

            //Connect to QuickBooks and begin a session
            sessionManager.OpenConnection("App1", "QuickBooks");
            connectionOpen = true;
            sessionManager.BeginSession(@"C:\Users\Public\Documents\Intuit\QuickBooks\Company Files\PSNew.QBW", ENOpenMode.omDontCare);
            sessionBegun = true;

            ICustomerAdd customerAddRq = requestMsgSet.AppendCustomerAddRq();
            customerAddRq.Name.SetValue(CP.CustomerName);
            customerAddRq.LastName.SetValue(CP.CustomerLastName);
            customerAddRq.Email.SetValue(CP.CustomerEmail);

            //Send the request and get the response from QuickBooks
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
            IResponse response = responseMsgSet.ResponseList.GetAt(0);
            ICustomerRet customerRet = (ICustomerRet)response.Detail;

            CP.GetCustomerId = customerRet.ListID.GetValue();
            CP.GetCustomerName = customerRet.Name.GetValue();
            CP.GetCustomerEmail = customerRet.Email.GetValue();
            //CP.customerAddRq1 = customerAddRq.Name.GetValue();
        }

        catch (Exception)
        {
            throw;
        }
        finally
        {
            //End the session and close the connection to QuickBooks
            if (sessionBegun)
            {
                sessionManager.EndSession();
            }

            if (connectionOpen)
            {
                sessionManager.CloseConnection();

            }
4

1 に答える 1

2

ターゲット プラットフォームの x86 に設定されたプロジェクト ビルド構成でアプリがコンパイルされていることを確認してください。これは、Intuit 統合 dll が 32 ビットであることを考えると、ネット上で最も一般的なソリューションです。しかし、私の場合、この問題に直面したとき、QuickBooks SDK をクライアント マシンにインストールすることにしました。それが解決に成功したときです。

于 2013-04-30T13:56:12.320 に答える