[英]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.