0

VBasic には非常に慣れていませんが、ここで説明します。マクロを使用して、VStudio 2010 環境のソリューション内でプロジェクト参照を見つけたいと考えています。このプロジェクトは、新しいアイテムを追加するために使用され、新しいファイルのパスを使用します。

私のソリューションでは、いくつかの仮想フォルダーを使用しています。すべてのツリーを反復処理しようとしたときに、葉に深く入り込むことができませんでした。誰かがそれをしましたか?

後で、その名前を使用してプロジェクト参照を収集しようとしました。

StartupProj = DTE.Solution.Item("MySpecialProj.uniquext")

しかし、私が得るのはこのエラーだけです

The parameter is incorrect. (Exception from HRESULT:0x80070057 (E:INVALIDARG))

グーグルで調べたところ、正しい方法であることがわかりましたが、このエラーが発生する理由を見つけることができませんでした。ここで私を助けてくれる人はいますか?

4

2 に答える 2

1

お役に立てれば:

解決策: プロジェクトの一時フレームワーク ファイルを次の場所で消去します。

Windows 7 の場合、パスは C:\Users[username]\AppData\Local\Temp\Temporary ASP.NET Files\ です。

パスに「Framework」が含まれる 64 ビット システムの場合、フル パスは次のとおりです: C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\

参照: http://www.solutioncottage.com/ShowSolution.aspx?solID=59

注: 通常、Google でエラー コードを検索すると、いくつかの優れた結果が得られます ;-)

編集: 16進数のエラーコードのグーグルについて。Microsoft Error Utilityを使用することをお勧めします。ツールをダウンロードし、exe を system32 フォルダーに配置します。次に、CMD を開き、コマンドを実行しerr 0x80070057ます。オペレーティング システムのヘッダー ファイルにエラーが表示されます。これらのテキスト メッセージを 16 進コードと一緒に Google で検索する方がはるかに簡単です。ps exe を system32 フォルダーに配置すると、コマンド ウィンドウの任意のディレクトリから CMD を実行できるようになります。

出力をテキスト ファイルに移植した結果を次に示します。 err 0x80070057 > C:\NotNullGothjik.txt

# for hex 0x80070057 / decimal -2147024809 :
  COR_E_ARGUMENT                                                corerror.h     
# MessageText: 
# An argument does not meet the contract of the method.
  DDERR_INVALIDPARAMS                                           ddraw.h        
  DIERR_INVALIDPARAM                                            dinput.h       
  DPERR_INVALIDPARAM                                            dplay.h        
  DPERR_INVALIDPARAMS                                           dplay.h        
  DPNERR_INVALIDPARAM                                           dplay8.h       
  DSERR_INVALIDPARAM                                            dsound.h       
  DVERR_INVALIDPARAM                                            dvoice.h       
  ecInvalidParam                                                ec.h           
  ecInvalidSession                                              ec.h           
  ecBadBuffer                                                   ec.h           
  MAPI_E_INVALID_PARAMETER                                      mapicode.h     
  STIERR_INVALID_PARAM                                          stierr.h       
  E_INVALIDARG                                                  winerror.h     
# One or more arguments are invalid
# 14 matches found for "0x80070057"
于 2012-07-03T20:09:34.910 に答える
0

選択したすべてのプロジェクトの & DLL 参照を見つけたい場合は、次を使用できます。

Private _applicationObject As DTE2

Public Sub OnConnection(application As Object, connectMode As ext_ConnectMode, addInInst As Object, ByRef [custom] As Array)
    _applicationObject = DirectCast(application, DTE2)
End Sub

...

For Each project As Project In DirectCast(_applicationObject.ActiveSolutionProjects, Object())
    Dim vsProject As VSProject = TryCast(project.[Object], VSProject)
    If vsProject <> Nothing Then            
        For Each reference As Reference In vsProject.References
            ' Do cool stuff here
        Next
    End If
Next

VSLangProj.dll への参照を見つけて含める必要があります (例: Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies 内)。

于 2012-07-04T05:39:10.243 に答える