我在同一个解决方案(一个常规项目和一个用于单元测试的测试项目)中跨多个项目使用模块时遇到问题。我正在尝试遵循http://msdn.microsoft.com/en-us/library/ms182532(v=vs.110).aspx中的示例代码中的示例代码(但使用 VB.NET 而不是 C#)。
所以我有 2 个项目,ZBank 和 ZBankTests。ZBankTests 引用了 ZBank。ZBank 有一个类 clsAccount(命名空间 BankAccount)和一个模块 modConstants(命名空间 BankConstants)。clsAccount 导入 ZBank.BankConstants 并可以使用其常量变量。
ZBankTests 有一个类 clsAccountTests(命名空间 ZBank.BankAccount.Tests),它导入 ZBank.BankAccount 和 ZBank.BankConstants。我可以很好地使用 BankAccount 类,但它会出错:
"'DebitAmountExceedsBalanceMessage' is not declared. It may be inaccessible due to its protection level."
我也将模块编译成一个 DLL,但是在添加对它的引用之后,两个项目都不能导入它或使用它的变量(阅读后尝试:在多个项目中使用相同的模块)。
模块代码:
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