如果DEBUG文件路径在debug和prod中。模式

时间:2013-04-13 18:07:29

标签: c# .net

我想从特定的路径位置读取文件。该位置在localserver和在线服务器上具有不同的磁盘字母和目录结构。

所以我想默认设置filepath来满足我的在线服务器磁盘,当我调试应用程序以使用本地文件路径时。

我试过这个

private const string _configurationFilePath = @"E:\web\mysite\";   
#if DEBUG
enter code here
_configurationFilePath = @"D:\mywebprj\mysite\";
#endif

我收到的错误消息已包含_configurationPath

的定义

如果不使用配置文件和其他手动输入的解决方案,有没有更好的方法呢?

感谢

3 个答案:

答案 0 :(得分:2)

您使用private const string因此无法修改。写下这样的代码:

#if !DEBUG
    private const string _configurationFilePath = @"E:\web\mysite\";   
#endif
#if DEBUG
enter code here
    private const string _configurationFilePath = @"D:\mywebprj\mysite\";
#endif

BTW更好的想法是将此路径存储在配置中而不是对其进行编码。

答案 1 :(得分:2)

一个更好的解决方案。您可以在项目文件的afterbuild部分中使用copy msbuild任务。

您可以使用命名法app。$(configuration).config根据解决方案配置名称创建多个app.config。示例:app.Debug.config。 app.Release.config等。

然后使用msbuild复制任务将一个应用程序配置文件复制到$(OutDir)作为MyProject.exe.config。

答案 2 :(得分:1)

使用#if DEBUG #else #endif

#if DEBUG
    private const string a = @"d:\";
#else
    private const string a = @"e:\";
#endif