0

そのprotobuf-csharp-portでプロトコルバッファを取得しようとしています。.proto ファイルを追加してカスタム ツールを使用し、.cs ファイルを取得して、自動ビルドを実行したいと考えています。カスタム ツールについては、csharp-test パッケージから CmdTool を取得して登録するように指示されています。

それはうまくいきましたが、私が得たツールを実行します

System.InvalidOperationException: Before a project can be instantiated, Engine.BinPath 
must be set to the location on disk where MSBuild is installed. This is used to evaluate 
$(MSBuildBinPath).
at Microsoft.Build.Shared.ErrorUtilities.ThrowInvalidOperation(String resourceName, Object[] args)
at Microsoft.Build.BuildEngine.Project..ctor(Engine engine)
at CSharpTest.Net.CustomTool.VsInterop.CmdTool.GenerateCode(String defaultNamespace, 
  String inputFileName) in e:\Projects\Library\Tools\CmdTool\VsInterop\CustomTool.cs:line 50

私は自分の要素から抜け出し、何をすべきか、または $(MSBuildBinPath) または Engine.BinPath を発生させる方法の手がかりを見つけることができないようです。

または、F7 からプロトゲンを実行するためのそれほど複雑でない方法があったとしても、それは素晴らしいことです。

4

1 に答える 1

1

Visual Studio 2008 でもまったく同じ問題がありました。ツールの作成者と協力して解決策を見つけたところ、彼の手順がうまくいきました。

  1. Nuget パッケージ「Csharptest.net.tools」をダウンロード

  2. 「tools/net40/CmdTool.exe register」を実行します

  3. VStudio を再起動します

于 2013-08-30T23:24:21.737 に答える