vs2008中创建testProject(类是于Nunit)碰到的路径问题

wxcnl 2008-07-16 03:04:54
项目是WPF做的
添加了一个test project

在WPF中,有一个代码加载了一个路径下面的xml文件
ModelDocument.Load(System.Environment.CurrentDirectory + MODELXMLPATH);

但当使用test project引用了该DLL,测试到这句代码的时候,
System.Environment.CurrentDirectory就变成了
\TestResults\accountname_computername 2008-07-15 17_51_25\Out
所以,最后就找到不到了文件

怎么办?谢谢!
...全文
359 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxcnl 2008-07-17
  • 打赏
  • 举报
回复
问题终于解决了,都是自己解决的,哈哈,不过还是要感谢楼上的几位
我就把答案贴出来,以供后来者查阅
还有,我解决的办法:
现在发掘好多新的技术国内网站上根本找不到,最后没办法,去国外论坛上搜索,效果相当的好,嗬嗬,咱的英语还行!

[DeploymentItem(@"MyTest2008\MyTest\TestData", @"TestData")]
[TestMethod()]
public void MakeScheduleTest()
{
}

就是把[DeploymentItem(@"MyTest2008\MyTest\TestData", @"TestData")]这句话加上就可以了
意思是,把原工程的某一个目录所有文件自动拷贝到测试某个目录下面,就可以了
wxcnl 2008-07-16
  • 打赏
  • 举报
回复
看来问题时出现在test project工程中的test results上面
每一次运行测试,都会在test results目录下面自动生成一个文件夹,例如
\TestResults\accountname_computername 2008-07-15 17_51_25\Out
可知性文件(exe),和所有的引用文件(DLL)都会在这里,

后来我想到把资源文件(自定义xml)叶拷贝到这里,可是问题是test project无法把一些资源文件自动拷贝到
\TestResults\accountname_computername 2008-07-15 17_51_25\Out目录下面,真是要死人了,还是我没有发现解决的方法?

但奇怪的是他会自动拷贝到test project工程的bin目录下面,问题就在于测试的时候,它运行的是
\TestResults\accountname_computername 2008-07-15 17_51_25\Out目录下面的


这里有经验的人吗?
grearo 2008-07-16
  • 打赏
  • 举报
回复
2.c# winform用
A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”;
B:“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称;
C:“AppDomain.CurrentDomain.BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
D:“System.Threading.Thread.GetDomain().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”;
E:“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;
F:“System.IO.Directory.GetCurrentDirectory”:获取当前应用程序的路径,最后不包含“\”;

3.c# windows service用“AppDomain.CurrentDomain.BaseDirectory”或“System.Threading.Thread.GetDomain().BaseDirectory”;
用“Environment.CurrentDirectory”和“System.IO.Directory.GetCurrentDirectory”将得到“ system32”目录的路径;
如果要使用“Application.StartupPath”或“Application.ExecutablePath ”,需要手动添加对“System.Windows.Forms.dll ”的引用,并在程序开头用“using System.Windows.Forms”声明该引用;

4.在卸载程序获取系统安装的目录:
System.Reflection.Assembly curPath = System.Reflection.Assembly.GetExecutingAssembly();
string path=curPath.Location;//得到安装程序类SetupLibrary文件的路径,获取这个文件路径所在的目录即得到安装程序的目录
wxcnl 2008-07-16
  • 打赏
  • 举报
回复
1)使用System.Windows.Forms.Application.StartupPath
的结果是"D:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE"
但我的程序放在E潘下面的

2)这里没有用过openfiledialog
grearo 2008-07-16
  • 打赏
  • 举报
回复
当你调用过openfiledialog后会改变System.Environment.CurrentDirectory
宝_爸 2008-07-16
  • 打赏
  • 举报
回复
把文件拷贝过去呗

grearo 2008-07-16
  • 打赏
  • 举报
回复
System.Windows.Forms.Application.StartupPath
wxcnl 2008-07-16
  • 打赏
  • 举报
回复
另,\TestResults\accountname_computername 2008-07-15 17_51_25\Out 是test project 下面的路径

110,585

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧