获取自定义构建工具来创建C#文件

时间:2012-04-26 17:55:39

标签: c# visual-studio-2008 msbuild

我正在尝试使用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运行protogen,那也不错。

1 个答案:

答案 0 :(得分:1)

我在Visual Studio 2008中遇到了完全相同的问题。我与该工具的作者合作以获得解决方案,并且他的步骤对我有效。

  1. 下载Nuget包“Csharptest.net.tools”

  2. 运行“tools / net40 / CmdTool.exe register”

  3. 重新启动VStudio