我需要在我的应用程序中创建一些核心库,这些库将在.NET 3.5和.NET 4.0中提供。我很高兴创建多个项目,创建所需的定义,并使用#ifdef
来控制哪些代码将其转换为哪个输出组件。让项目在多个.NET版本中保持同步
但是,我想知道的是,如果有一种方法来保持这些项目同步?当我在XNA下开发时,我有一个Windows版本和一个Windows Phone版本 - 并且XNA将一个属性注入名为XnaCrossPlatformGroupID
的项目文件。它的作用是使Visual Studio自动确保在将文件添加到项目中时将其添加到相应的项目中。所以,例如,如果我将一个名为Foo.cs
的文件添加到我的项目的Windows副本中,则会将该文件添加到项目的Windows Phone副本中。
是否有任何方式复制Visual Studio中的一组正常项目的这种行为?我不希望使用构建配置,因为我希望能够在一个步骤中编译所有目标平台,而无需借助IDE之外的工具(比如TeamCity)。还是有另一种方法可以让一个项目针对多个目标而构建,而无需使用20种不同的构建配置来解决该解决方案?
递归包含的东西很酷 - 但我看到的一个缺陷是,即使某些文件丢失了,您也无法在解决方案资源管理器中看到它(这使事情变得更容易)。 我也尝试过可移植类库 - 但它太严格了,并且在某些文件跨平台更改时无济于事。我也必须在Android和iOS上编译我的代码(使用MonoDroid和MonoTouch)。 – Ani 2012-07-23 20:43:34
@ananthonline我一直在protobuf-net上使用递归事物4年;从来没有导致问题:) – 2012-07-23 20:56:56
我* *爱*。我曾阅读过有关可移植类库的信息 - 但可以使用它们来定位多个.NET Framework版本吗?我必须承认我有点跛脚,并没有尝试过,因为它看起来像是针对跨平台而不是Framework版本的可移植性...... – 2012-07-23 20:57:22