2017-01-31 4 views
1

多くのプロジェクト(好奇心が強い場合は4)とVS 2017 RC3を使用して、以前のproject.json/visual studio 2015形式から最近移行したVisual Studio 2017 RC3にはC#(.Net Core)ソリューションがあります。Visual Studio 2017 RC3でC#(.net core)プロジェクトのディレクトリパスを取得するには?

プロジェクトの1つにテストプロジェクトがあり、そこに含まれるいくつかのファイルにアクセスする必要があります。

Directory.GetCurrentDirectory()は、VS2017のテストがIDEのインストール先C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDEから実行されているため、Directory.GetCurrentDirectory()はテストコードでプロジェクトのパスを取得することができません。

現在、私はテストプロジェクトのベースパスをハードコーディングしてこの問題を解決しています。これは理想的ではないので、には、プログラムでVS 2017 RC3のプロジェクトの基本パスを取得する方法がありますか?

答えて

4

あなたはAppContext.BaseDirectoryを使いたいと思うでしょう。これは、%projectfolder%\ bin \ debug \ netcoreapp1.1からテストが実行されている場所を返します。あなたはプロジェクトフォルダを取得するために、このようなことをすることができます。

AppContext.BaseDirectory.Substring(0, AppContext.BaseDirectory.IndexOf("bin"));

あなたはヘルパーや拡張メソッドにこれを投げることができました。

+1

前のディレクトリの中にシーケンス "bin"がある場合に、私は 'LastIndexOf'を使用します。 – DSUK

関連する問題