部分.csproj文件

时间:2008-10-01 11:12:33

标签: c# csproj

是否可以将.csproj中的信息拆分为多个文件?有点像partial class功能的项目版本。

3 个答案:

答案 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)

您可以将多个项目合并为一个大型解决方案,但我认为这并不是您想到的,因为在这种情况下每个项目都必须是一个完整的项目。