Possible Duplicate:
.NET NUnit test - Assembly.GetEntryAssembly() is null
我在撰写一个日志库。 我希望图书馆默认情况下会写入到为此应用程序命名的共同应用程序数据文件夹中的目录。 例如, 如果应用程序名为“ MyApplication.exe ”, 我想要在“ C: programDataMyApplication” 中保存的数据 。
我用这个代码来构造路径 :
private static string loggingDataPath =
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
Path.DirectorySeparatorChar +
Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().CodeBase) +
Path.DirectorySeparatorChar;
这和预期的完全一样,有一个问题,我无法测试图书馆!
当我尝试运行单位测试时, 它们都以系统. NullReference Exception 失败。 如果我用字符串来替换“ Assembly. GetEntryAssembly (. CodeBase) ” 调用单位测试, 单位测试再次正常运行 。
我想我知道为什么会发生这种情况,但我不知道如何解决这个问题,我希望有人能指引我走上正义的道路。
蒂娅!
更新( 5 - 24 - 12 ) : 我不是要尝试单位测试“ logDataPath ” 的内容 。 只要存在“ Committee. GetEntryAssembly (. CodeBase) ”, 就会导致所有单位的测试都与上述例外不符 。 请注意, “ logDataPath” 是静态的( 因为它必须是静态的库 ) 。