是否可以将.csproj中的信息拆分为多个文件?有点像partial class
功能的项目版本。
答案 0 :(得分:22)
你不能拥有多个主csproj。但是因为csproj的底层布线是使用msbuild完成的,所以你可以简单地拥有多个相互导入的部分csproj。解决方案文件将看到最多派生的 csproj。
<强> project1.csproj 强>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
....
</Project>
<强> project2.csproj 强>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="project1.csproj" />
...
</Project>
project.csproj - 这是解决方案文件引用的主要项目。
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="project2.csproj" />
...
</Project>
底线是使用msbuild 导入功能,您可以拥有部分csproj文件,其中每个文件都包含主项目(我的示例中的project.csproj)将使用的定义。
当您打开已更改的解决方案或项目文件时,Visual Studio将显示项目 对话框的安全警告。选择正常加载项目选项,然后按确定。稍后再次打开解决方案时,将不会显示警告,因为正常加载项目的配置存储在 suo 文件中。
答案 1 :(得分:4)
是的,您可以跨多个文件拆分信息。您可以使用Import Element (MSBuild)。
请注意,如果您尝试打开包含其他项目文件的项目文件,Visual Studio将为您提供annoying security warning。
来自MSDN的有用链接:
How to: Use the Same Target in Multiple Project Files
请注意,外部文件按惯例具有 .targets 扩展名。
答案 2 :(得分:-2)
您可以将多个项目合并为一个大型解决方案,但我认为这并不是您想到的,因为在这种情况下每个项目都必须是一个完整的项目。