Как установить все проекты в решении, чтобы скопировать локальный ложный

Есть ли быстрый способ пометить все ссылки на проекты решения как Локальное копирование? есть какой-то инструмент, который это делает? это довольно грязно, чтобы отметить около 200 проектов вручную

3 ответа

Решение

Вы можете использовать xsl для преобразования файла проекта, чтобы добавить False (это то, что делает локальная копия false)

Вот пример файла xsl t

<?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> 

У меня есть хитрый способ сделать это, но это всегда вручную

Предположим, у вас есть два проекта

Вытащите все ваши ссылки, нажмите Shift и выберите вашу первую ссылку, затем продолжайте удерживать Shift и выберите последнюю ссылку вашего первого проекта

Отпустите кнопку Shift, нажмите кнопку Ctrl и выберите первую ссылку вашего второго проекта, затем одновременно нажмите клавиши Ctrl и Shift и выберите последнюю ссылку второго проекта

Должно быть так:

Скриншот

Наконец, вы можете установить Локальное свойство Копировать для всех выбранных вами ссылок.

IDE: VS2013 французский

Да, есть очень простой и быстрый способ, начиная с msbuild v 15. Вы можете скопировать один файл с именем Directory.Build.props в корневую папку, содержащую ваш источник:

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

Больше нечего делать! Больше информации смотрите /questions/42466585/ustanovit-kopirovat-lokalnyij-v-lozh-po-umolchaniyu/42466600#42466600

Другие вопросы по тегам