Visual Studio / msbuild CopyToOutputDirectory - как это работает? - PullRequest
0 голосов
/ 19 февраля 2020

Я использую сообщество Visual Studio:

Microsoft Visual Studio Community 2019
Version 16.4.5
VisualStudio.16.Release/16.4.5+29806.167
Microsoft .NET Framework
Version 4.8.03752

У меня очень простой ASP. Net Базовый проект веб-сайта / приложения со следующей структурой каталогов:

website
 /bin
 /www
     /about
     /images

ПРИМЕЧАНИЕ. Каталог web root НЕ wwwroot, а просто www*1008*

Файл проекта (.csproj) содержит следующее (для копирования всех подкаталогов / файлов в выходной каталог). :

   <ItemGroup>
      <Content Update="www\**\*">
         <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      </Content> 
   </ItemGroup>

Использование Visual Studio (Config = Debug)

   BUILD -> Rebuild Solution

Результат:

/bin
    /Debug
          /netcoreapp3.0
                        /Properties
                        /runtimes

(отсутствует / www and все подчиненные каталоги и файлы!) - ПОЧЕМУ ???

Те же результаты получаются, если я использую msbuild.exe из командной строки разработчика; не имеет значения в отношении конфигурации (Debug vs Release).

Я предполагал, что www directory (и все подкаталоги) и файлы будут скопированы в выходной каталог - но, очевидно, это не так происходит. Я не понимаю, почему игнорируется CopyToOutputDirectory ; Я что-то упустил, но поиск документации не дал ответов.

Буду признателен за любые идеи / советы.

Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2020

Обновление :

Просто изменилось следующее в файле проекта (.csproj):

   <ItemGroup>
      <Content Update="www\**\*">
         <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      </Content> 
   </ItemGroup>

На:

   <ItemGroup>
      <None Update="www\**\*">
         <CopyToOutputDirectory>Always</CopyToOutputDirectory>
      </None> 
   </ItemGroup>

Использование Visual Studio: BUILD -> Rebuild Solution (успех)

Также пробовал с msbuild.exe (успех)

Теперь www directory и все подкаталоги / файлы присутствуют в выходных данных. -- Почему? Я подозреваю, потому что я не использую по умолчанию "wwwroot" в качестве каталога содержимого, использование не работает, тогда как делает; но это только теория; все, что я знаю, это то, что это работает.

Также эта ссылка SO полезна для описания различий между и для тех, кому интересно:

различные настройки «Создать действие» в свойствах проекта Visual Studio и что они делают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...