[英]How to set the “Copy Local Dependencies” in C# projects [problem with CopyLocal]
[英]how to set all projects in solution to copy local false
有没有一种快速的方法来将所有解决方案项目引用标记为Copy local false? 有一些工具可以做到吗? 手动标记大约200个项目非常混乱
我有一个很棘手的方法,但是它总是手动的
假设您有两个项目
拉出所有参考,按shift键并选择您的第一个参考,然后按住shift键并选择第一个项目的最后一个参考
释放Shift键,按ctrl键并选择第二个项目的第一个参考,然后同时按ctrl和Shift键并选择第二个项目的最后一个参考
应该是这样的:
最后,您可以将所有选定引用的“复制本地”属性设置为false
IDE:VS2013法国
您可以使用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>
是的,从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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.