【问题标题】:Forked a project but what is .pp?分叉了一个项目,但.pp 是什么?
【发布时间】:2015-06-03 13:11:19
【问题描述】:

抱歉,如果这里不适合发布此类问题...如果它应该在其他网站上,请告诉我或随时关闭。

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

然后我将其克隆到本地并“输入”到其中以查看它。我注意到.cs 文件有一个额外的.pp 扩展名,这样做的目的是什么?所以不是Agent.cs,而是Agent.cs.pp

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

对于 github 新手的问题,我很抱歉,虽然我确实使用 Subversion,但我还是很陌生。

【问题讨论】:

    标签: c# git nuget


    【解决方案1】:

    C# 源文件已针对 NuGet 进行了预处理 (pp)。见Configuration and source code transformation (NuGet)

    您可以通过在代码中包含 Visual Studio 项目属性来指定源代码转换。属性使用美元符号 ($) 分隔。

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

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

    对比 Github 上的文件和本地的文件,你会发现在被项目的命名空间替换的代码中,.cs.pp 已经被转换为.cs$rootnamespace$

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

    【讨论】:

    • 猜猜,我不知道从哪里开始,这是否意味着如果我想编辑 .cs.pp 文件,我需要将它们制作成 .cs 文件?
    • 如果你想维护项目(这可能是你 fork 的原因),文件应该保留为 .cs.pp。如果您只想使用该项目(此时无需派生它),请将 NuGet 引用添加到新的 Visual Studio 项目。如果你想要两者并测试你的本地更改,我不是专家,但本地 NuGet 服务器可能会有所帮助 (stackoverflow.com/questions/14527615/…)
    • 其实我是个白痴,这些文件在demo文件夹中,我可以看到实际文件为.cs。
    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多