我们正在使用 Jon Skeet 的 proto-csharp-port,在 Visual Studio 2010 中将它与 ReSharper 混合时遇到了一些困难。
我们通过自定义 MSBuild 目标生成 .cs 文件,连接如下:
<Target Name="BeforeBuild" DependsOnTargets="CompileProtos" />
CompileProtos
目标运行ProtoGen
,然后使用 .cs 将生成的 .cs 文件添加到项目@(Compile)
组中CreateItem
。这会在定义的目录中查找并编译它找到的每个 .proto 文件,因此它们不会在项目中列出。
它失败的地方是 ReSharper 无法识别 .cs 文件的内容(因为它们不在项目中并且可能还不存在),所以我无法让解决方案分析灯变绿。
如果我将 .cs 文件添加到项目中,则会出现构建失败,因为 .cs 文件已Compile
两次添加到项目组中。
我知道 Marc 的 protobuf-net 具有 Visual Studio 2008的优点,我正在寻找类似的东西,但适用于 Jon 的 protobuf-csharp-port 和 Visual Studio 2010。
理想情况下,我希望能够将 .proto 文件添加到项目中,正确构建它们,并让 Visual Studio 和 ReSharper 了解生成的 .cs 文件,以便 IntelliSense 和解决方案分析正常工作。
我猜想 .xsd 文件如何隐式生成 .cs 文件之类的东西可以解决问题。