有一种快速方法可以将所有解决方案项目引用标记为Copy local false吗?是否有一些工具可以做到这一点?手动标记大约200个项目非常麻烦
答案 0 :(得分:2)
我有一个棘手的方法,但总是手动
假设您有两个项目
拉出所有参考文献,按 shift 并选择第一个参考,然后按住 shift 并选择第一个项目的最后一个参考
释放 shift 按钮,按 ctrl 按钮,然后选择第一个项目的第一个参考,然后按 ctrl 和同时移动按钮并选择第二个项目的最后一个参考
应该是这样的:
最后,您可以将Copy local property设置为false,以显示所有选定的引用
IDE:VS2013法语
答案 1 :(得分:1)
您可以使用xsl转换项目文件以添加False(这是本地false所做的复制)
这是一个示例xslt文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cs="http://schemas.microsoft.com/developer/msbuild/2003"
exclude-result-prefixes="cs">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@*|*|text()|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="cs:Project/cs:ItemGroup/cs:Reference">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
<xsl:if test="not(./cs:Private)">
<Private>False</Private>
</xsl:if>
</xsl:copy>
</xsl:template>
<xsl:template match="@*| text() | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 2 :(得分:1)
是的,从msbuild v 15开始,有一种简单易用的快速方式。您可以在根文件夹中复制名为 Directory.Build.props 的单个文件包含您的来源:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<Reference>
<Private>False</Private>
</Reference>
</ItemDefinitionGroup>
</Project>
没什么可做的!更多信息,请参阅https://stackoverflow.com/a/50755479/1196586