获取用于创建 C# 文件的自定义生成工具
本文关键字:自定义 工具 文件 用于 创建 获取 | 更新日期: 2023-09-27 18:32:25
我正在尝试让协议缓冲区与那个protobuf-csharp-port一起使用。 我想通过添加 .proto 文件并使用自定义工具,然后获取.cs文件来自动生成。 对于自定义工具,我被指示从 csharp 测试包中获取 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 运行,那也很好。
我在Visual Studio 2008中遇到了完全相同的问题。我与该工具的作者合作以获得解决方案,他的步骤对我有用。
-
下载Nuget包"Csharptest.net.tools"
-
运行"tools/net40/CmdTool.exe register"
-
重启VStudio