VBプロジェクトを2つのプロジェクトにリファクタリングしています.1つは、将来のプロジェクトと共有したいユーティリティライブラリです。ソリューションのレイアウトは次のようになります。別のvb.netプロジェクトで関数とクラスを使用する
Solution
|_ util
|_ util.vb
|_ main project
|_ (main project files)
utilはクラスライブラリとして作成され、メンバーファイルが追加されます。私はその後、メインプロジェクトのリファレンスにutilを追加しました。しかし、私は私のメインのプロジェクトファイルからutil.vb内の関数を呼び出すようにしようとすると、私はこのようなビルドエラーを取得:
error BC30451: Name 'LogException' is not declared.
error BC30002: Type 'VarFile' is not defined.
をこれらはutil.vbで定義されている、そしてそれはの一部であったとき、それが正常にコンパイルメインプロジェクト宣言は次のようになります。(私は詳細をトリミングしました)
Imports System.IO
Public Module utils
Public Sub LogException(ByRef ex As Exception, Optional ByVal logFile As String = "", Optional ByVal logFolder As String = "")
' ...
End Sub
Public Class VarFile
' ...
End Class
End Module
私はメインのプロジェクトに「リンクとして」util.vbを追加することができ、それがすべてのビルドエラーを解決しますが、それは敗北に思えますクラスライブラリをリファクタリングする目的 - 私はこのライブラリを別途開発したいと思います。メインプロジェクトで追加していないファイルリンクを常に把握する必要はありません。これよりも良い方法がありますか?
dllプロジェクトを作成してライブラリとして作成し、メインプロジェクトから参照を追加します。これらはすべて1つの解決策になります。ビルドオーダーも設定します。 'Imports'を使用して、' Imports System.IO'と同様の機能を使用してください。 – kbvishnu
@Harie:これはうまくいきました。私は輸入声明を紛失していただけです):あなたのコメントを回答として再提出してください。ありがとう! –
@martin_ljcan :) – kbvishnu