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

1

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

  • 5
    Я не знаю инструмента, который делает это - но файл .csproj - это просто XML - вы могли бы создать небольшую утилиту для изменения содержимого XML
  • 0
    было бы неплохо, если бы было что-то готовое, но думаю, что я потрачу время на его создание, может быть неплохо просто добавить его в событие перед сборкой и все готово.
Показать ещё 2 комментария
Теги:

3 ответа

1
Лучший ответ

Вы можете использовать xsl для преобразования файла проекта, чтобы добавить 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> 
2

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

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

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

Отпустите кнопку смены, нажмите кнопку ctrl и выберите первую ссылку второго проекта, затем одновременно нажмите ctrl и shift и выберите последнюю ссылку на свой второй проект

Это должно быть так:

Изображение 174551

Наконец, вы можете установить Скопировать локальное свойство в значение false для всех выбранных ссылок

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

0

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

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

Больше нечего делать! Подробнее см. qaru.site/questions/197780/...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню