Visual Studio расширяет подстановочный файл, включающий файл при сборке - PullRequest
1 голос
/ 04 февраля 2020

Я использую Visual Studio 2019 и обновляю файл .vbproj для использования некоторых более современных функций - я думаю, что первоначальное решение / проект, возможно, было построено еще в VS 2008. Я конвертирую массу явного файла включает в себя один шаблон для извлечения всех моих файлов:

   <ItemGroup>
      <Compile Include="Src\**\*.vb" />
   </ItemGroup>

Это прекрасно работает, я вижу все файлы в проводнике проекта Visual Studio. Однако, когда я собираю проект, этот подстановочный знак расширяется, и каждый исходный файл получает имя, например:

   <ItemGroup>
      <Compile Include="Src\Code\File1.vb" />
      <Compile Include="Src\Code\File2.vb" />
      <Compile Include="Src\Code2\File1.vb" />
   </ItemGroup>

Этого не произойдет, пока я не соберу проект, я могу загрузить Visual Studio без проблем, и файл проекта остается нетронутым.

Я делаю это из-за нескольких проблем, связанных с объединением этих файлов в некоторые ветви рефакторинга, в которых удалено много файлов, поэтому этот метод будет намного проще.

Могу ли я предотвратить это в Visual Studio?

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Мне удалось обойти эту проблему, обновив файл проекта до типа Visual Studio 2017/2019. Следующее руководство было очень удобно: https://natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/

  • Замена элемента root проекта XML с / 1007 *
  • Удаление подстановочного знака включает Я указал в исходном сообщении - Visual Studio по умолчанию сопоставляет этот шаблон глобуса с новым стилем проекта
  • Преобразованные ссылки NuGet packages.config для использования <PackageReference> s

Am очень доволен тем, как это получилось :)

1 голос
/ 05 февраля 2020

Могу ли я запретить Visual Studio делать это?

На самом деле это должно работать, и оно работает с C# and VB.net проектами на моей стороне с последней версией VS2019 16.4.4.

1. Я предполагаю, что поскольку ваш проект основан на старой версии VS2008, формат файла проекта (xx.vbproj) сильно отличается от формата файла нового проекта в VS2019, поэтому система проекта VS2019 не может его распознать. .

PS: Для этого вы можете создать один новый проект VB .net fx в VS2019, чтобы убедиться, что то, что вы хотите, должно работать для проектов VB. Также я предлагаю вам создать новый пустой проект VB и переместить ваши исходные файлы в новый проект, чтобы выполнить mgration.

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

Для меня я создаю новый проект VB => В папке проекта создайте Src folder => В папке Src create Code folder => В папке Code создайте Test1.vb и Test2 .vb с простым кодом. Затем используйте ItemGroup для хранения этих файлов, и он работает хорошо все время, независимо от того, во время разработки или после сборки.

(Вы можете проверить, используете ли вы аналогичные шаги, или вы можете вставить файлы в Solution Explorer перед редактированием xx.vbproj?)

Надеюсь, что это поможет, и если я неправильно пойму ваш вопрос не стесняйтесь поправлять меня:)

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