如何将项目添加到除自身之外的所有解决方案项目?

Posted

技术标签:

【中文标题】如何将项目添加到除自身之外的所有解决方案项目?【英文标题】:Ho to add project to all solution projects except itself? 【发布时间】:2022-01-02 10:03:33 【问题描述】:

我的解决方案中有分析器项目。

我也使用Directory.Build.props 文件。

我想通过所有项目(分析器及其测试除外)引用分析器项目。

我可以使用什么条件?可以得到referencing project吗?

【问题讨论】:

您可以使用正在构建的项目$(MSBuildProjectFile),但这不是超级通用的(尽管对于您的情况可能没问题);另一种方法是找出哪个属性将分析器项目与另一个项目区分开来,另一方面,该属性可能在 Directory.build.props 中尚不可用,因为它被提前导入 【参考方案1】:

感谢 stijn 评论,我找到了解决方案:

    <ItemGroup>
        <ProjectReference 
          Include="..\Analyzers\GlobalAnalyzers\GlobalAnalyzers.csproj" 
          Condition="!$(MSBuildProjectDirectoryNoRoot.Contains('Analyzers/'))">
            <PrivateAssets>all</PrivateAssets>
            <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
            <OutputItemType>Analyzer</OutputItemType>
        </ProjectReference>
    </ItemGroup>

【讨论】:

以上是关于如何将项目添加到除自身之外的所有解决方案项目?的主要内容,如果未能解决你的问题,请参考以下文章

将 TapGestureRecognizer 添加到除 UICollectionView 单元格之外的整个视图

如何使用熊猫将一列移动到除标题之外的另一列[重复]

apache htaccess 不会将 https://www 添加到除 inside.php 之外的任何页面

如何使用 htaccess 将多个域重定向到除 1 个目录之外的另一个域?

如何将宏命令添加到解决方案或项目中存在的所有文件?

如何将include / lib目录添加到MSVC 2015解决方案中的所有项目?