部分.csproj文件

Ric*_*gle 15 c# csproj

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

Jor*_*ira 22

你不能拥有多个主csproj.但是因为csproj的底层布线是使用msbuild完成的,所以你可以简单地拥有多个相互导入的部分csproj.解决方案文件将看到派生最多的csproj.

project1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ....
</Project>
Run Code Online (Sandbox Code Playgroud)

project2.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project1.csproj" />
    ...
</Project>
Run Code Online (Sandbox Code Playgroud)

project.csproj - 这是解决方案文件引用的主项目.

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="project2.csproj" />
    ...
</Project>
Run Code Online (Sandbox Code Playgroud)

底线是使用msbuild 导入功能,您可以使用部分csproj文件,其中每个文件都包含主项目(我的示例中为project.csproj)将使用的定义.


打开更改的解决方案或项目文件时,Visual Studio将显示项目对话框的安全警告.选择" 正常加载项目 "选项,然后按" 确定".稍后再次打开解决方案时,将不会显示警告,因为正常加载项目的配置存储在suo文件中.


aku*_*aku 6

是的,您可以将信息拆分到多个文件中。您可以使用导入元素 (MSBuild)

请注意,如果您尝试打开包含其他项目文件的项目文件, Visual Studio 会向您发出烦人的安全警告。

来自 MSDN 的有用链接:

如何:在多个项目文件中使用相同的目标

请注意,按照惯例,外部文件具有.targets扩展名。

  • 我知道,但是 suo 文件通常不存储在源代码管理下。 (3认同)