2014-12-01 42 views
1

是否有一種快速方法將所有解決方案項目引用標記爲Copy local false?有沒有這樣的工具?這是相當混亂,以紀念大約200個項目手動如何設置解決方案中的所有項目以複製本地虛假

+5

我不知道一個工具,做的 - 但一個.csproj文件只是XML - 你可以建立一個小工具來改變XML內容 – 2014-12-01 19:50:52

+0

如果有東西準備好會很好,但是我猜我會花時間做一個,可能很好,只是爲了添加它預先建立事件和所有設置。 – atikot 2014-12-01 19:57:17

+1

我想象你會遇到錯誤,當你把他們全部複製本地虛假。只是準備好調試這個,如果你有200個項目,聽起來像回去找出哪些你需要複製本地 – DLeh 2014-12-01 20:01:06

回答

1

你可以使用XSL轉換項目文件中添加假(這是複製本地假呢)

下面是一個例子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

我有一個棘手的方式做到這一點,但它始終是手動

假設你有兩個項目

拉你的所有引用,按轉變和選擇第一個引用,然後繼續保持轉變並選擇您的第一個項目的最後一個引用

釋放轉變按鈕,按CTRL按鈕,並選擇你的第二個項目的第一參考,然後按CTRL轉變按鈕,在同一時間,並選擇你的第二個項目的最後一個引用

它應該是這樣的:

screenshot

最後,你可以設置複製本地屬性設置爲false到您選擇的所有引用

IDE:VS2013法國

相關問題