gpt4 book ai didi

c# - 使项目在多个 .NET 版本之间保持同步

转载 作者:太空狗 更新时间:2023-10-30 00:43:19 24 4
gpt4 key购买 nike

我需要在我的应用程序中创建一些核心库,这些库将在 .NET 3.5 和 .NET 4.0 中可用。我很高兴创建多个项目,创建所需的定义并使用 #ifdef 来控制将哪些代码放入哪个输出程序集。

不过,我想知道是否有办法使这些项目保持同步?当我在 XNA 下开发时,我有一个 Windows 版本和一个 Windows Phone 版本 - XNA 将一个属性注入(inject)到名为 XnaCrossPlatformGroupID 的项目文件中。它所做的是使 Visual Studio 能够自动确保在将文件添加到项目时,它会添加到相应的项目中。因此,举例来说,如果我将名为 Foo.cs 的文件添加到我的项目的 Windows 副本中,那么该同一文件将添加到该项目的 Windows Phone 副本中。

是否有任何方法可以在 Visual Studio 中为一组正常的项目复制这种行为?我宁愿不使用构建配置,因为我希望能够在一个步骤中编译所有目标平台,而无需求助于 IDE 之外的工具(例如 TeamCity,例如)。或者是否有另一种方法可以针对多个目标构建项目,而无需使用 20 种不同的构建配置来构建解决方案?

最佳答案

我做的是:

  • 有一个“常规”csproj,我将其用于我的大部分开发、添加文件等 - 但请记住,真的所有文件都“在”
  • 对于其他 csproj,使用如下内容:

    <ItemGroup>
    <Compile Include="..\Foo\**\*.cs" />
    </ItemGroup>

(这与“添加为链接”基本相同,但不需要在每个文件的基础上完成)

这是所有 *.cs 文件的递归包含,因此所有内容都包含在内。无需文件维护。


如果您尝试针对多个框架(而不是多个版本),那么另一种选择可能是:使用 Portable Class Library .这是一个适用于多个框架的单一项目,仅限于您​​目标平台的功能的严格交集。在 VS2010 中,这是一个附加功能;它默认包含在 VS 11 中。

关于c# - 使项目在多个 .NET 版本之间保持同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11619828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com