C# · 12月 23, 2021

c# – 分叉一个项目,但什么是.pp?

很抱歉,如果这不是发布此类问题的正确位置…如果它应该在其他网站上,请告诉我或随时关闭.

我有一个关于github的简单问题.我对它很新,并且“分叉”了我想要贡献的项目.

然后我在本地克隆它,然后“”“进去看它.我注意到.cs文件有一个额外的.pp扩展名,目的是什么?所以代替Agent.cs而不是Agent.cs.pp.

另外像one这样的项目如何处理.net方面.我是说我看到了html文件和.js文件.但.net(cs文件)不包含与之关联的项目或解决方案.它们只是以.cs.pp的形式出现.如果我想修改这些文件,我应该创建一个新项目并将它们添加到我的项目中吗?

抱歉github新手问题,但我很新,虽然我使用Subversion.

解决方法 为NuGet预处理C#源文件(pp).见 Configuration and source code transformation (NuGet).

You specify a source code transformation by including Visual Studio project properties in the code. The properties are delimited using dollar signs ($).

将NuGet中的代码添加到VS项目时,它将替换这些属性,从而生成可编译的代码.

在您提供的LSCK示例中,添加NuGet引用后的结果为:

将Github上的文件与本地文件进行比较,您会发现.cs.pp已被转换为.cs和$rootnamespace $,代码被项目的命名空间取代.

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