web-dev-qa-db-ja.com

ソリューションには、ソリューションフォルダーの外部にあるプロジェクトがあります

File|Add to Source Controlを選択して自分のソリューションをローカルリポジトリに追加しようとしましたが、次のメッセージが表示されました。

ソース管理-Git
現在のソリューションには、ソリューションフォルダーの外部にあるプロジェクトがあります。これらのプロジェクトは、Gitリポジトリでソース管理されません。すべてのプロジェクトを1つのGitリポジトリに追加するには、すべてのプロジェクトを1つのフォルダーに統合してください。

ただし、私のプロジェクトはすべて私のソリューションフォルダー内にあります。不確かなのは、プロジェクトの1つにNuGetパッケージを追加しただけで、どこにも表示されないことです。プロジェクトのcsprojファイルに次のように表示されます。

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

それがこのエラーを引き起こす可能性があるかどうか誰かが知っていますか? [OK]をクリックしてローカルリポジトリを作成できましたが、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

UPDATE:

ソース管理に新しいプロジェクトを追加するたびに、このメッセージが表示されるようです。私は外部ファイルを参照しているとは思わないので、根本的に何かが起こっているようで、私のソリューションファイルはそれを示していると思います。このメッセージが表示されても、ソース管理のソリューションが追加され、すべてが正常に動作しているように見えることに注意してください。

私はコマンドラインGITプログラムを持っていないので、それなしで何が行われているのかを確認する方法がある場合は、他に何もインストールしないほうがよいでしょう。

17
Jonathan Wood

下記のアップデートをご覧ください

ソリューションファイルの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を使用します。新しいソリューションをソース管理に追加しようとすると、まったく同じ警告が表示され、 VSと共にインストールされたGitのバージョン。 この場所に多くのソリューションとディレクトリがあることに注意してください。

  3. 拡張機能 Easy Git Integration tools を使用している場合、私の構成では、基盤となるGitサービスとして Tortoise Git を使用していますが、ではありませんこの警告メッセージを受け取ります。

  4. 警告メッセージをOKにすると、すべてのファイルが後続のGitコミットに正常に含まれ、有効な.gitignoreファイルが作成されます。これには、すべての有効なファイルを使用して、GitHubを正常に作成してプッシュすることが含まれます。

  5. Visual Studioのデフォルトのc:/ username/source/reposでソリューションを作成すると、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_、つまりVisual StudioのデフォルトのGitプラグインを試行すると、ソースファイルツリーに関するメッセージが表示されます。

Error Message from Git provider

d)ソース管理をサードパーティのプラグインEZ-Gitに切り替えると、Gitリポジトリを問題なく作成できます。

EZ Git successfully creates repo

e)Git統合なしで、Zipファイルからアーカイブバージョンに戻し、個々のパッケージを削除して原因を特定しました。その結果、次の行が削除されると、Visual StudioのデフォルトのGitはリポジトリを正常に作成し、エラーメッセージは表示されません。

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

f)問題は、Visual StudioがMSTest.TestAdaptorのdllを処理する方法にあるように見えます。これは、デフォルトでは、プロジェクトの一部であるかのように扱われますが、c:/ Users /のSolutionフォルダー構造の外側にあります。ユーザー名/.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とテストランナーの両方を適切に機能させることができる場合があります。

h)注:上記の動作はxUnitにも適用されます。

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

これは、問題がVisual StudioおよびMicrosoft TestPlatformに関する依存関係に関連していることを示しています。

10
dmcquiggin

Gitリポジトリのルートフォルダー に移動してコマンドラインを再確認し、次のように入力します。

git status

追加するファイルのリストにソリューションファイルが表示されることを確認してください。
それ以外の場合は、Gitリポジトリが1つのフォルダーにあり、ソリューションとそのプロジェクトが別のパスに完全にあることを意味します。

1
VonC

これは数か月前(Visual Studio 2017)に私と一緒に起こりました。そして以下は問題を解決しました:

  1. Visual Studioを閉じる
  2. .gitフォルダーを削除する(デフォルトでは非表示)
  3. Visual Studioを開きます。ソリューションをソース管理に追加する

プロジェクトのルートフォルダーに.gitフォルダーがあるかどうかを確認することを忘れないでください。

注:履歴データは失われます。

0
Sukhi

ソリューションフォルダー内の。vsフォルダーを削除します。

これは私の場合それを解決しました。私の場合の問題の理由は、ソリューションフォルダー全体を別の場所(1つ上のレベル)に移動したことが原因である可能性があります。 。vsキャッシュに古いパスがまだ残っていると思います。 (このフォルダーを削除する前に、必ずVisual Studioを閉じてください。)

0
Erik Bongers