Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将解决方案中的所有项目设置为复制本地false_C#_.net_Copy Local - Fatal编程技术网

C# 如何将解决方案中的所有项目设置为复制本地false

C# 如何将解决方案中的所有项目设置为复制本地false,c#,.net,copy-local,C#,.net,Copy Local,是否有一种快速的方法将所有解决方案项目引用标记为Copy local false?有没有这样的工具?手动标记大约200个项目是相当混乱的我有一个棘手的方法来做,但总是手动的 假设你有两个项目 拉动所有引用,按shift键并选择第一个引用,然后按住shift键并选择第一个项目的最后一个引用 松开shift键,按ctrl键并选择第二个项目的第一个参照,然后同时按ctrl键和shift键并选择第二个项目的最后一个参照 应该是这样的: 最后,可以将所有选定引用的“复制本地”属性设置为false IDE:

是否有一种快速的方法将所有解决方案项目引用标记为Copy local false?有没有这样的工具?手动标记大约200个项目是相当混乱的

我有一个棘手的方法来做,但总是手动的

假设你有两个项目

拉动所有引用,按shift键并选择第一个引用,然后按住shift键并选择第一个项目的最后一个引用

松开shift键,按ctrl键并选择第二个项目的第一个参照,然后同时按ctrl键和shift键并选择第二个项目的最后一个参照

应该是这样的:

最后,可以将所有选定引用的“复制本地”属性设置为false


IDE:VS2013法语

我有一个棘手的方法,但它总是手动完成的

假设你有两个项目

拉动所有引用,按shift键并选择第一个引用,然后按住shift键并选择第一个项目的最后一个引用

松开shift键,按ctrl键并选择第二个项目的第一个参照,然后同时按ctrl键和shift键并选择第二个项目的最后一个参照

应该是这样的:

最后,可以将所有选定引用的“复制本地”属性设置为false


IDE:VS2013 french

您可以使用xsl转换项目文件以添加False这就是copy local 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> 

您可以使用xsl转换项目文件以添加False这就是copy local 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> 

是的,有一种非常简单快捷的方法,从MSBuildV15开始。您可以在包含源代码的根文件夹中复制名为Directory.Build.props的单个文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
  <Reference>
    <Private>False</Private>
  </Reference>
</ItemDefinitionGroup>
</Project>

没什么可做的了!更多信息请参见

是的,有一种非常简单快捷的方法,从msbuild v 15开始。您可以在包含源代码的根文件夹中复制名为Directory.Build.props的单个文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
  <Reference>
    <Private>False</Private>
  </Reference>
</ItemDefinitionGroup>
</Project>

没什么可做的了!更多信息请参见

我不知道有哪种工具可以做到这一点-但是.csproj文件就是XML-您可以构建一个小实用程序来更改XML内容如果有现成的东西就好了,但是我想我会花时间制作一个,只需将其添加到预构建事件和所有设置中就可以了。我想当您将所有设置都设置为复制本地false时,您会遇到错误。只要准备好调试这个,如果你有200个项目,听起来更痛苦的是返回并找出你确实需要复制本地的项目。大部分项目已经设置为复制本地false,有时引用会丢失,然后找到没有复制本地false的流氓项目更麻烦。。所以,不,应该不是问题。我不知道有什么工具可以做到这一点-但是.csproj文件就是XML-你可以构建一个小实用程序来更改XML内容。如果有什么东西准备好了,那就好了,但是我想我会花时间制作一个,只需将其添加到预构建事件和所有设置中就可以了。我想当您将所有设置都设置为复制本地false时,您会遇到错误。只要准备好调试这个,如果你有200个项目,听起来更痛苦的是返回并找出你确实需要复制本地的项目。大部分项目已经设置为复制本地false,有时引用会丢失,然后找到没有复制本地false的流氓项目更麻烦。。所以不,不应该是个问题