同じソリューション (通常のプロジェクトと単体テスト用のテスト プロジェクト) 内の複数のプロジェクトでモジュールを使用すると問題が発生します。http://msdn.microsoft.com/en-us/library/ms182532(v=vs.110).aspxのサンプル コードに従おうとしています(ただし、C# の代わりに VB.NET を使用しています)。
ZBank と ZBankTests の 2 つのプロジェクトがあります。ZBankTests には ZBank への参照があります。ZBank には、クラス clsAccount (名前空間 BankAccount) とモジュール modConstants (名前空間 BankConstants) があります。clsAccount は ZBank.BankConstants をインポートし、その定数変数を使用できます。
ZBankTests には、ZBank.BankAccount と ZBank.BankConstants をインポートするクラス clsAccountTests (名前空間 ZBank.BankAccount.Tests) があります。BankAccount クラスは問題なく使用できますが、次のエラーが発生します。
"'DebitAmountExceedsBalanceMessage' is not declared. It may be inaccessible due to its protection level."
また、モジュールをDLLにコンパイルしましたが、参照を追加した後、どちらのプロジェクトもそれをインポートしたり、その変数を使用したりできません(これを読んだ後に試しました: Using the same modules in multiple projects )。
モジュールのコード:
Namespace BankConstants
Module modConstants
Public DebitAmountExceedsBalanceMessage As String = "Debit amount exceeds balance"
Public DebitAmountLessThanZeroMessage As String = "Debit amount less than zero"
End Module
End Namespace