部分 .csproj 文件

发布于 2024-07-06 15:36:02 字数 75 浏览 8 评论 0原文

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

Is it possible to split the information in a .csproj across more than one file? A bit like a project version of the partial class feature.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

没︽人懂的悲伤 2024-07-13 15:36:02

您不能拥有多个主 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 将显示项目的安全警告对话框。 选择选项正常加载项目,然后按确定。 稍后再次打开解决方案时,将不会显示警告,因为正常加载项目的配置存储在suo文件中。

You can not have more than one master csproj. But because the underneath wiring of the csproj is done using msbuild you can simply have multiple partial csproj that import each other. The solution file would see the most derived 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 - this is the main project that is referred by the solution file.

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

Bottom line is that using msbuild Import feature you can have partial csproj files where each one would contain definitions that the main project (project.csproj in my example) would use.


Visual Studio will show a Security Warning for project dialog when you open your changed solution or project file. Choose the option Load Project Normally and press OK. When opening the solution again later the warning will not be shown because the configuration to Load Project Normally is stored in the suo file.

国粹 2024-07-13 15:36:02

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

请注意,如果您尝试执行以下操作,Visual Studio 将为您提供烦人的安全警告打开包含其他项目文件的项目文件。

来自 MSDN 的有用链接:

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

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

Yes, you can split information across several files. You can use Import Element (MSBuild).

Note that Visual Studio will give you annoying security warning if you will try to open project file that includes other project files.

Useful linky from MSDN:

How to: Use the Same Target in Multiple Project Files

Note that external files have .targets extension by conventions.

初与友歌 2024-07-13 15:36:02

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

Well you can have multiple projects combined into one large solution, but I don't think that is quite what you had in mind as each project has to be a complete project in that case.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文