复制了一个项目,但是什么是 .pp 文件?

7

如果这不是发布此类问题的正确位置,请告诉我或随意关闭它。

我有一个关于Github的简单问题。我很新手,想要贡献到一个项目中并进行了“fork”操作。

然后我在本地克隆了它,并输入“ls”命令查看它。我注意到.cs文件有一个额外的.pp扩展名,这是什么目的?所以代替Agent.csAgent.cs.pp

此外,像这个一样的项目如何处理.net方面的问题。我的意思是我看到了html文件和.js文件。但是.net(cs文件)没有与其相关联的项目或解决方案。它们只是以.cs.pp的形式出现。如果我想修改这些文件,我应该创建一个新项目并将其添加到我的项目中吗?

对于Github新手问题表示抱歉,但我相当新手,虽然我使用Subversion。

1个回答

9
C#源代码文件被预处理(pp)用于NuGet。请参见NuGet的配置和源代码转换
您可以通过在代码中包含Visual Studio项目属性来指定源代码转换。这些属性使用美元符号($)进行分隔。
将代码从NuGet添加到VS项目时,它将替换这些属性,从而生成可编译的代码。
在您提供的LSCK示例中,添加NuGet引用后的结果如下:

LSCK in Solution Explorer

与本地文件相比,在Github上比较文件,您会发现.cs.pp已转换为.cs,代码中的$rootnamespace$被项目的命名空间替换了。

要做出贡献,您可以自己创建这样的文件:可以使用NuGetContentGenerator实现相反的方式(.cs --> .cs.pp)。


我猜,我不确定接下来该怎么做,这是否意味着如果我想编辑.cs.pp文件,我需要将它们变成.cs文件? - JonH
如果您想要维护该项目(这可能是您分叉它的原因),那么文件应该保持为.cs.pp。如果您只想使用该项目(那么无需分叉它),请将NuGet引用添加到新的Visual Studio项目中。如果您既想要两者,又想测试本地更改,我不是专家,但本地NuGet服务器可能会有所帮助(https://dev59.com/D2Uq5IYBdhLWcg3waPpC)。 - Thomas Weller
其实我是个白痴,这些文件在演示文件夹中找到,那里我可以看到实际文件为 .cs。 - JonH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接