簡體   English   中英

如何在解決方案中設置所有項目以復制本地false

[英]how to set all projects in solution to copy local false

有沒有一種快速的方法來將所有解決方案項目引用標記為Copy local false? 有一些工具可以做到嗎? 手動標記大約200個項目非常混亂

我有一個很棘手的方法,但是它總是手動的

假設您有兩個項目

拉出所有參考,按shift鍵並選擇您的第一個參考,然后按住shift鍵並選擇第一個項目的最后一個參考

釋放Shift鍵,按ctrl鍵並選擇第二個項目的第一個參考,然后同時按ctrlShift鍵並選擇第二個項目的最后一個參考

應該是這樣的:

屏幕截圖

最后,您可以將所有選定引用的“復制本地”屬性設置為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM