请教各位牛人:
环境:.net 2.0, virtual studio 2005, winform
假设有A和B两个项目(Windows 应用程序),在同一个解决方案下,但不在同一个文件夹下。A和B都可以独立运行,现在A项目的一个窗体要调用B项目下的一个窗体,于是我把B项目的Dll引入到了A项目。但是B项目下的该窗体运行时需要B项目下的一个xml文件,这时我运行A项目,调用B项目的窗体时,就会出现路径错误,因为它找不到了那个xml文件。我在B项目用的是相对路径,放在了debug文件夹下,路径为: D:\myProject\Project_B\bin\debug\saveConfig.xml
运行A项目,调用B项目的窗体时,该路径就会变为
D:\myProject\Project_A\bin\debug\saveConfig.xml
应该怎么解决这个问题啊?万分感谢!
在PostBuildEvent添加:
xcopy /r /y $(TargetPath) $(ProjectDir)..\Bin\
xcopy /r /y $(TargetDir)$(TargetName).pdb $(ProjectDir)..\Bin\
xcopy /r /y $(ProjectDir)saveConfig.xml $(ProjectDir)..\Bin\
在A,B项目的属性里都添加上面的Event,运行Bin目录下的可执行文件即可;
xml文件的路径就用Application.StartupPath +"saveConfig.xml";就可以了
很简单,你把那个XML文件复制到A项目的debug里一份啊,对于附属文件,我一直是什么做的。
只要看看你的debug目录,你就知道B项目的dll也被复制到这里了,所以它的相对路径肯定就是这边了。
如果你期望在VS里经常修改这个文件,那么可以把这个XML文件通过“添加现有项..”功能添加到A项目中来,然后在它的属性里设置“始终复制”到输出目录,这样OK了。
楼上说的是正确的。