2012-04-26 1 views
0

protobuf-csharp-port로 프로토콜 버퍼를 가져 오려고합니다. .proto 파일을 추가하고 사용자 지정 도구를 사용하여 .cs 파일을 가져 와서 자동 빌드를 만들고 싶습니다. 커스텀 툴을 위해, 나는 csharp-test 패키지에서 CmdTool을 가져 와서 등록하도록 지시 받았다.C# 파일을 만드는 사용자 지정 빌드 도구 받기

,하지만 내가

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에서 protogen을 실행하는 덜 복잡한 방법이 있더라도 좋을 것입니다.

+0

비슷한 질문 : HTTP : //stackoverflow.com/questions/453820/protocol-buffers-in-c-sharp-projects-using-protobuf-net-best-practices-for-cod – heavyd

+0

해당 질문에 대한 대답이 설치되지 않은 경우 다른 protobuf/C# 솔루션 나는 감격 것입니다. 나는이 토끼 구멍이 얼마나 깊어 지는지에 대해 큰 기대를 걸고 있습니다. –

+0

아 ... 네. CmdTool의 출력 창과 로그 파일을 보았습니까? (http://help.csharptest.net/?CmdToolVisualStudio.html) – heavyd

답변

1

저는 Visual Studio 2008에서 똑같은 문제가있었습니다. 저는 도구 작성자와 함께 솔루션을 얻었고 그의 단계가 저에게 효과적이었습니다.

  1. 다운로드 Nuget 패키지 "Csharptest.net.tools는"

  2. 실행

  3. 다시 시작 VStudio에게 "도구/net40/CmdTool.exe 등록"

관련 문제