【发布时间】:2008-10-01 11:12:33
【问题描述】:
是否可以将 .csproj 中的信息拆分到多个文件中?有点像partial class 功能的项目版本。
【问题讨论】:
是否可以将 .csproj 中的信息拆分到多个文件中?有点像partial class 功能的项目版本。
【问题讨论】:
您不能拥有多个主 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 Import 功能,您可以拥有部分 csproj 文件,其中每个文件都包含主项目(在我的示例中为 project.csproj)将使用的定义。
当您打开已更改的解决方案或项目文件时,Visual Studio 将显示项目的安全警告对话框。选择Load Project Normal选项并按OK。稍后再次打开解决方案时,将不会显示警告,因为 Load Project Normal 的配置存储在 suo 文件中。
【讨论】:
.targets 文件中作为 recommended here 并将它们放在与导入它们的主项目文件)。
是的,您可以将信息拆分到多个文件中。您可以使用Import Element (MSBuild)。
请注意,如果您尝试打开包含其他项目文件的项目文件,Visual Studio 会给您annoying security warning。
来自 MSDN 的有用链接:
How to: Use the Same Target in Multiple Project Files
请注意,外部文件按约定具有 .targets 扩展名。
【讨论】:
好吧,您可以将多个项目组合成一个大型解决方案,但我认为这并不是您的想法,因为在这种情况下,每个项目都必须是一个完整的项目。
【讨论】: