在 visual studio 个项目之间同步文件
Synchronize files between visual studio projects
我有两个 visual studio 项目。一个是 Windows,另一个是 Linux 和 Mac。它们使用完全相同的源文件,但具有不同的构建配置和 link 针对同一库的两个副本(一个是为 Mono 构建的,另一个是为 .NET 构建的)。
这是一张图表:
Folder structure:
-- ProjectA
-- ProjectA.csproj
-- CustomSourceA.cs
-- ProjectB
-- ProjectB.csproj
-- CustomSourceB.cs
-- ProjectCore
-- CommonFile1.cs
-- CommonFile2.cs
...
Reference Structure:
ProjectA -> LibraryA (.NET)
ProjectA -> Includes entire source code of ProjectCore
ProjectB -> LibraryB (Mono, a complete source code rewrite of LibraryA)
ProjectB -> Includes entire source code of ProjectCore
如何同步这些项目,以便一个项目的 adding/removing 个文件和另一个项目的 adds/removes 个文件?到目前为止,我一直在手动执行此操作。我考虑过编写一个只解析 XML 并为我做的脚本,但我想知道是否有不涉及这种手动 hackery 的解决方案。
我最后用了一个小技巧来做到这一点。用通配符替换了项目 B 中的所有包含:
<!-- ProjectB.csproj -->
<ItemGroup>
<Compile Include="..\ProjectA\**\*.cs"/>
</ItemGroup>
然后我在项目 A 中添加了一个编译标志,但我不想在项目 B 中添加这些东西
//CustomSourceA.cs
#if PROJECT_A
#endif
我有两个 visual studio 项目。一个是 Windows,另一个是 Linux 和 Mac。它们使用完全相同的源文件,但具有不同的构建配置和 link 针对同一库的两个副本(一个是为 Mono 构建的,另一个是为 .NET 构建的)。
这是一张图表:
Folder structure:
-- ProjectA
-- ProjectA.csproj
-- CustomSourceA.cs
-- ProjectB
-- ProjectB.csproj
-- CustomSourceB.cs
-- ProjectCore
-- CommonFile1.cs
-- CommonFile2.cs
...
Reference Structure:
ProjectA -> LibraryA (.NET)
ProjectA -> Includes entire source code of ProjectCore
ProjectB -> LibraryB (Mono, a complete source code rewrite of LibraryA)
ProjectB -> Includes entire source code of ProjectCore
如何同步这些项目,以便一个项目的 adding/removing 个文件和另一个项目的 adds/removes 个文件?到目前为止,我一直在手动执行此操作。我考虑过编写一个只解析 XML 并为我做的脚本,但我想知道是否有不涉及这种手动 hackery 的解决方案。
我最后用了一个小技巧来做到这一点。用通配符替换了项目 B 中的所有包含:
<!-- ProjectB.csproj -->
<ItemGroup>
<Compile Include="..\ProjectA\**\*.cs"/>
</ItemGroup>
然后我在项目 A 中添加了一个编译标志,但我不想在项目 B 中添加这些东西
//CustomSourceA.cs
#if PROJECT_A
#endif