Решение имеет проекты, которые находятся за пределами папки решения - PullRequest
10 голосов
/ 09 июня 2019

Я попытался добавить свое решение в локальный репозиторий, выбрав Файл | Добавить в систему управления исходным кодом , но я получил следующее сообщение.

Управление исходным кодом - Git
В текущем решении есть проекты, расположенные вне папки решения. Эти проекты не будут контролироваться исходным кодом в репозитории Git. Чтобы добавить все проекты в один репозиторий Git, объедините все проекты в одной папке.

Однако все мои проекты находятся в папке моего решения.Единственное, в чем я не уверен - это то, что я добавил пакет NuGet в один из моих проектов, и я нигде этого не вижу.В файле csproj проекта это выглядит следующим образом:

<ItemGroup>
  <PackageReference Include="Microsoft.Win32.Registry" Version="4.5.0" />
</ItemGroup>

Кто-нибудь знает, может ли это вызвать эту ошибку?Мне удалось нажать кнопку «ОК», и он создал локальный репозиторий, но я хочу поместить его на GitHub, и поэтому я хотел бы выяснить, в чем проблема.

В качестве дополнительного вопроса при добавлении решениякак это для GitHub, я обычно включаю какие-либо пакеты, как это?Я ожидал папку с пакетами, но не получил ее.

Вот снимок экрана решения:

enter image description here

А вот мойфайл решения:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28922.388
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toxic", "Toxic\Toxic.csproj", "{DEAAC3F5-B48F-4601-ADC7-ECFE1519A841}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toxic.Desktop", "Toxic.Desktop\Toxic.Desktop.csproj", "{A4EAA8D5-C085-4960-A871-74F68F6F9BC7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toxic.Web",    "Toxic.Web\Toxic.Web.csproj", "{49E8312B-506E-4AC1-8524-37BB601EC889}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToxicTests", "ToxicTests\ToxicTests.csproj", "{131B2077-A4C2-48EA-A1E1-8CA1A38097BD}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {DEAAC3F5-B48F-4601-ADC7-ECFE1519A841}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {DEAAC3F5-B48F-4601-ADC7-ECFE1519A841}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {DEAAC3F5-B48F-4601-ADC7-ECFE1519A841}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {DEAAC3F5-B48F-4601-ADC7-ECFE1519A841}.Release|Any CPU.Build.0 = Release|Any CPU
        {A4EAA8D5-C085-4960-A871-74F68F6F9BC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {A4EAA8D5-C085-4960-A871-74F68F6F9BC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {A4EAA8D5-C085-4960-A871-74F68F6F9BC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {A4EAA8D5-C085-4960-A871-74F68F6F9BC7}.Release|Any CPU.Build.0 = Release|Any CPU
        {49E8312B-506E-4AC1-8524-37BB601EC889}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {49E8312B-506E-4AC1-8524-37BB601EC889}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {49E8312B-506E-4AC1-8524-37BB601EC889}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {49E8312B-506E-4AC1-8524-37BB601EC889}.Release|Any CPU.Build.0 = Release|Any CPU
        {131B2077-A4C2-48EA-A1E1-8CA1A38097BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {131B2077-A4C2-48EA-A1E1-8CA1A38097BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {131B2077-A4C2-48EA-A1E1-8CA1A38097BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {131B2077-A4C2-48EA-A1E1-8CA1A38097BD}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {2076F481-A5C7-4132-874E-47767C93475D}
    EndGlobalSection
EndGlobal

ОБНОВЛЕНИЕ:

Кажется, теперь я получаю это сообщение каждый раз, когда добавляю новый проект в Source Control.Кажется, здесь что-то происходит в основном, поскольку я не думаю, что я ссылаюсь на какие-либо внешние файлы, и я думаю, что мои файлы решений показывают это.Обратите внимание, что, хотя я получаю это сообщение, оно все еще добавляет решение для управления исходным кодом, и все, кажется, работает нормально.

У меня нет программы GIT из командной строки, и я действительно предпочел бы не устанавливать ничего другогоесли есть какой-нибудь способ увидеть, что происходит без него.

Ответы [ 3 ]

3 голосов
/ 10 июля 2019

См. Обновление ниже

Судя по номеру версии Visual Studio в вашем файле решения, я предполагаю, что вы используете Visual Studio 2019, относительно недавний выпуск (возможно, предварительную версию)).

Это мои наблюдения :

  1. Я использую Visual Studio Enterprise 16.20 (Preview 3.0), а также Visual Studio Enterprise 16.1.6 (Release).

  2. В любой версии Visual Studio, если я создаю решение в пользовательском каталоге, в моем случае я использую c: \ Code \ Projects, я получаю точно такое же предупреждение при попытке добавить новое решение вУправление исходным кодом и выбор версии Git, которая была установлена ​​с VS. Обратите внимание , что у меня есть много решений и каталогов в этом месте.

  3. Если я использую расширение Средства интеграции с Easy Git , которые в моей конфигурациииспользует Tortoise Git в качестве основного сервиса Git, я не получаю это предупреждающее сообщение.

  4. Если я в порядке, предупреждающее сообщение, всефайлы успешно включены в последующую Git Commit, и создается действительный файл .gitignore.Это включает в себя успешное создание и передачу в GitHub со всеми действительными файлами.

  5. Если я создаю решение в Visual Studio по умолчанию c: / username / source / repos, я делаю not получает предупреждение от Preview или Release версий Visual Studio. Обратите внимание , что у меня нет других Решений или Справочников в этом месте.

Я бы предложил вам

a) Убедитесь, что нетрепозиторий git в родительской папке;Это иногда сбивало с толку Visual Studio - вы найдете ссылки на эту проблему несколько лет назад.Это может быть вашей проблемой.

b) Для спокойствия используйте Git из командной строки.Tortoise Git также имеет интеграцию с Visual Studio.

Если бы вы могли предоставить дополнительную информацию о версиях Visual Studio и Git, иерархии путей, будь то новое решение, это может помочь нам точно определить проблему.

ОБНОВЛЕНИЕ :

Я также испытывал ту же проблему с проектами .Net Core 2.2, и после долгой ночи с кофе я могу воспроизвести это.

С тестовым проектом MS:

a) Тестовый проект является единственным в решении.

b) Ниже показано содержимое файла проекта.Test Project file, showing References

c) Попытка Add The Solution To Source Control, т. Е. Плагин Git Visual Studio по умолчанию, отображает сообщение о дереве исходных файлов:

Error Message from Git provider

d) Переключение управления исходным кодом на сторонний плагин EZ-Git позволяет без проблем создавать репозиторий Git.

EZ Git successfully creates repo

e) Я вернулся к заархивированной версии из zip-файла без интеграции с Git и удалил отдельные пакеты, чтобы изолировать причину;В результате этого при удалении следующей строки Git по умолчанию в Visual Studio успешно создаст хранилище без сообщения об ошибке.

<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" />

f) Похоже, что Visual Studio обрабатывает библиотеки DLL.MSTest.TestAdaptor, которые по умолчанию обрабатываются так, как если бы они были частью Проекта, но находятся вне структуры папок Solution, в каталоге c: /Users/username/.nuget.

g) Добавление ExcludeAssets в MSTest.TestAdaptor приведет к удалению сообщения об ошибке, но, вполне очевидно, оно нарушает работу средства запуска Visual Studio.

<PackageReference Include="MSTest.TestAdapter" Version="1.4.0">
  <ExcludeAssets>all</ExcludeAssets>
</PackageReference>

Может быть возможно найти комбинацию IncludeAssets,ExcludeAssets и PrivateAssets для обеспечения как правильного функционирования Visual Studio Git, так и Test Runner.

h) ПРИМЕЧАНИЕ. Поведение, описанное выше, также относится к xUnit, то есть

<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />

Что указывает на то, что проблема связана с зависимостями вокруг Visual Studio и Microsoft TestPlatform.

0 голосов
/ 12 июля 2019

Это случилось со мной несколько месяцев назад (в Visual Studio 2017).И следующее решило проблему:

  1. Закрыть Visual Studio
  2. Удалить папку .git (которая по умолчанию скрыта)
  3. Открыть Visual Studio.Добавьте решение в систему управления версиями

Не забудьте проверить, есть ли какая-либо папка .git в корневой папке проекта.

Примечание: вы потеряете исторические данные.

0 голосов
/ 09 июня 2019

Дважды проверьте в командной строке, перейдя в корневую папку вашего репозитория Git и введите:

git status

Убедитесь, что файл решения действительно отображается всписок файлов, которые нужно добавить.
В противном случае это означает, что Git-репозиторий находится в одной папке, а решение и его проекты находятся по совершенно другому пути.

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