16

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

4

3 回答 3

23

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

项目1.csproj

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ....
</Project>

项目2.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 将显示项目对话框的安全警告。选择选项Load Project Normal并按OK。稍后再次打开解决方案时,将不会显示警告,因为通常加载项目的配置存储在suo文件中。

于 2008-10-01T11:23:34.693 回答
6

是的,您可以将信息拆分到多个文件中。您可以使用Import Element (MSBuild)

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

来自 MSDN 的有用链接:

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

请注意,外部文件按约定具有.targets扩展名。

于 2008-10-01T11:18:17.297 回答
-3

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

于 2008-10-01T11:15:17.740 回答