2017-03-10 7 views
5

、私たちは同じようglobal.json内のローカルパスを指定することができるように使用される:(VS 2015でglobal.jsonを使用してのような)ファイルパスによって、VS 2017の参照ローカルプロジェクトVS 2015で

{ 
    “projects”: [ “src”, “test”, “C:\\path\\to\\other\\projects” ] 
} 

それはですそのパスから現在のソリューションにすべてのプロジェクトを追加して、既存のプロジェクトからそれらを簡単に参照できるようにします。

これで、VS 2017はcsprojを使用してモデルを変更し、プロセス内のproject.jsonとglobal.jsonを削除しましたが、誰かがこの方法を知っていますか?

私が得たベストは、手動で他のプロジェクトを1つずつソリューションに組み込むことです。そして、それを参照する必要がある既存のプロジェクトすべてで、それらを含めるようにcsprojを編集する必要があります。これは、単に1つの場所にファイルパスを含めるという従来の方法に比べて、面倒です。

ありがとうございます。

+0

[.net core(csproj)global.json 'projects'相当]の複製(http://stackoverflow.com/questions/42773815/net-core-japanese/)を複製するには、ここにレポがあります。 csproj-global-json-projects-equivalent) – Set

答えて

0

まあ、5月だし、マイクロソフトの正式な解決策はまだありません。私はPowershellと新しい.NETコアCLIを使って何か作業しています。プロジェクトからソリューションを追加/削除するためのコマンドは既にdotnet.exeに組み込まれています。だからこれが私が思いついたものです。

Includes.json

{ 
    "Includes": [ 
     "C:\\projects\\SomeProjectA\\src", 
     "C:\\git\\SomeProjectB\\src" 
    ] 
} 

追加-Includes.ps1

echo "Beginning import of projects in Includes.json" 

$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json 

$IncludePaths = $JsonIncludes.Includes; 
foreach ($IncludePath in $IncludePaths) { 

    $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` 
        -Include *.csproj ` 
        -Recurse ` 
        | % {$_.FullName } 

    foreach ($ProjectFile in $ProjectFiles) { 
     dotnet sln add $ProjectFile 
    } 
} 

は、Remove-Includes.ps1を

echo "Beginning removal of projects in Includes.json" 

$JsonIncludes = (Get-Content -Raw -Path "Includes.json") | ConvertFrom-Json 

$IncludePaths = $JsonIncludes.Includes; 
foreach ($IncludePath in $IncludePaths) { 

    $ProjectFiles = Get-ChildItem ($IncludePath + "\*") ` 
        -Include *.csproj ` 
        -Recurse ` 
        | % {$_.FullName } 

    foreach ($ProjectFile in $ProjectFiles) { 
     dotnet sln remove $ProjectFile 
    } 
} 

これは、古いGlobal.jsonファイルを使用するのに比べていくつかのステップが追加されましたが、必要な処理は実行されます。これを便利にするには、ソリューションフォルダを追加し、Includes.jsonをインクルードして、Visual Studio内から簡単に変更できるようにします。

いくつかの注意:

  • の追加は/スクリプトを削除するには、ほぼ正確に同じですが、唯一の違いはDOTNETのSLNは、コマンドを追加/削除です。これは、おそらく1つの対話型スクリプトにクリーンアップすることができます。
  • 別の追加/削除スクリプトを使用する代わりに、Includes.jsonを読み込んで、.slnファイルを解析して現在解決されているプロジェクトと比較することもできます。

https://github.com/rushfive/VS2017-Includes

関連する問題