Igo*_*nko 3 c# projects-and-solutions code-organization visual-studio
我正在开发一个类库项目,它为客户端应用程序提供了许多有用的扩展方法.该项目预计将用于各种平台(.NET框架的版本).
为了做到这一点,我将使用几个单独的Visual Studio项目,每个项目都用于自己的平台.这些项目可能有自己的外部依赖项,但源代码将通过使用"添加作为参考"功能在它们之间共享.这种方法允许我通过在一个文件中编写代码来更改所有项目的实现,而无需将其复制到其他项目.记住目标框架的差异,我需要使用#if编译器指令.每个项目的结果将作为特定版本的.NET框架的NuGet包发布.
这是我有两个问题:
为了做到这一点,我将使用几个单独的Visual Studio项目,每个项目都用于自己的平台.
你不需要这样做.您可以为同一个项目提供多个配置.您需要通过编辑项目文件来处理它,但您只需要执行一次(或者至少每次需要添加一个新平台时执行一次).使用在每个项目配置中定义的条件编译符号,允许您在每个构建配置中排除某些位源代码.
我之前做过几次这样的事情,而这正是我用来在Noda Time中进行PCL构建的方法.我最终得到了6种配置:
显然你的需求可能会有所不同(特别是在签名方面),但它现在对我们来说效果很好 - 而且我认为它比手动保持多个项目文件同步要好得多.
另一种选择是为每个平台提供一个"骨架"项目文件,以及一个"主"项目文件,并为除主人之外的所有人生成真实的项目文件.因此,您需要将新的源文件引用添加到主项目文件中,然后重新生成所有其他文件.这意味着编写代码来做到这一点,请注意......或者使用我们用于protobuf-csharp-port的项目:csprojectprojector
| 归档时间: |
|
| 查看次数: |
857 次 |
| 最近记录: |