本来は非推奨ですが、とある理由でVC#が使えないため VSCodeを使って C# ( .NET Framework )を組もうとしています。
しかし、なぜかVSCodeでのインテリセンスが反応しません。
※ VSCodeは外付けHDDにあり、作成しようとしているプロジェクトはデスクトップにあります。
(書き忘れていましたが、「オフラインでの開発」が前提としています。もちろんDL時はオンラインですが)
Flow: 1. VSCode(zip版)をDL 2. ポータブル化するためにcode.exeがあるフォルダ内にdataフォルダを作成 3. 起動 4. 拡張機能で"japanese" (Japanese Language Pack for Visual Studio Code v1.60.4)を追加 5. VSCodeを再起動 6. C# ( C# for Visual Studio Code(powered by OmniSharp) ) をインストール 7. 対象ファイル群があるフォルダをVSCodeにD&D 8. 「このフォルダー内のファイルの作成者を信頼しますか」で「はい」を選択 9. 「.NET Framework 4.7がインストールされていないからインストールするか」的なものでNOを選択 10. 「ファイル」-> 「ユーザ設定」-> 「設定」で「ユーザー」の設定(json)を開く 11. "autoGuessEncoding": true を追加 (jsonファイルに) 12. 再起動 13. C# XML Documentation Comments v0.1.20 をインストール 14. すでに書かれているコードでのインスタンス化している行のクラス名にカーソルを当てる 15. 何も変化がない
※ Flow (9)は Core の方ではなく Frameworkの方だったようです…
この(14)のコードはちょっとここで提示するには大掛かりなので割愛しますが、
var obj = new Test1.Class1( 100 );
のようなコードだと、Class1にカーソルを当てるとXMLドキュメントとして書いたsummary等が表示されるはずですが、
なにも変化がありません。(もちろんnamespace Test1や Class1クラスにもコンストラクタにもXMLドキュメントとしてsummaryは必ず書かれているとします)
試しに新規でやってみました。
Flow: 16. 「ファイル」-> 「新規ウィンドウ」で新しいウィンドウを表示してそこに切り替える 17. main.csを作成 18. main.csがあるフォルダ内にLibsフォルダを作成 19. Libsフォルダ内にClass1.csを作成 20. compile.batを作成し、中身はcscで直接コンパイルするものとする 21. 「ターミナル」->「新しいターミナル」でCommand Promptを起動 22. compile.batでコンパイル
C#
1// main.cs 2using System; 3 4namespace Test1{ 5 class TestABC{ 6 public static void Main( string[] args ){ 7 Test1.Libs.Class1 obj = Test1.Libs.Class1.Factory( 100 ); 8 obj.Print(); 9 } 10 } 11}
C#
1// .\Libs\Class1.cs 2/// <summary> 3/// 適当な名前空間1 4/// </summary> 5namespace Test1{ 6 /// <summary> 7 /// 適当な名前空間2 8 /// </summary> 9 namespace Libs{ 10 /// <summary> 11 /// 適当なクラス 12 /// </summary> 13 public class Class1{ 14 /// <summary> 15 /// Factoryパターン 16 /// </summary> 17 /// <param name="n">適当な値</param> 18 /// <returns>適当~</returns> 19 public static Class1 Factory( int n ){ 20 return new Class1( n ); 21 } 22 23 /// <summary> 24 /// コンストラクタっす 25 /// </summary> 26 /// <param name="n">適当な値</param> 27 private Class1( int n ){ 28 this.n = n; 29 } 30 31 /// <summary> 32 /// 表示系 33 /// </summary> 34 public void Print(){ 35 System.Console.WriteLine( this.n ); 36 } 37 38 /// <value> 39 /// 適当なデータ 40 /// </value> 41 private int n; 42 } 43 } 44}
(batファイルは単純にcscを呼び出してコンパイルしているだけなので割愛)
以前のなら public static Class1 Factory( int n ){...} の上に「1 Reference」とかみたいに出て、
main.csのTest1.Libs.Class1.Factory( 100 );のFactoryメソッドにカーソルを合わせると、
引数はこれこれ、戻り値はこれこれとsummaryやらなんやらが書かれたやつが出てきたはずです。
それに、このTest1.Libs.Class1.Printメソッド内の System.Console.WriteLine( this.n ); もsummaryやらなんやらが出ません。
以前使ったときはインテリセンスが反応して、ちゃんと自分が組んだクラスとかでも反応がありましたが。
拡張機能が足りないだけなのでしょうか。
もし拡張機能が足りないだけならこのC#インテリセンス用の拡張機能を教えて頂きたいです。
[情報]
言語: C#
VSCodeのバージョン: 1.60.2
OS: Windows 8, 10
[追記1]
(ひよこのアイコンの)「Snippet」,「C# Snippets v1.1.0」をそれぞれインストールしてみましたが、変わりませんでした。
「C# Extensions v1.3.1」も入れてみましたが、それでも変わりません。
[追記2]
「VSCode C# intelliSense」と検索してみました。
参考3ではそもそも前提
が.NET Core前提なので違います。
(dotnetを使うし)
参考6は関係のありそうなもの(NuGet等以外)はインストールしてみましたが変わりません。
方法自体も上の参考と同じですし。
参考7では、
I was able to resolve my issue by installing the correct SDK of .net core
(= .NET Core SDKをインストールしたら解決しました)
とあるので、.NET Coreをここから、Binaries(Windows x64)をDL&インストールして、
コマンドプロンプトでパスを通し、コマンドプロンプトからcode.exe (VSCode)を起動しました。
それでも変わりませんでした。
(どうしてもオフラインでやらないといけないので)
参考8ではUnityなので除外。
参考9では、「slnファイルがあるはずだからそれを使え」とあります。
ですが私が以前やっていたものだとそんなものは使った覚えもありませんし…。
今のところ、試したものはこれぐらいでしょうか。
回答2件
あなたの回答
tips
プレビュー