1

我收到此错误:

Could not copy the file "obj\x86\Debug\TitleGenerator.exe" because it was not found.

当我尝试编译时,但这没有任何意义。我唯一改变的是添加以下代码行来帮助我调试问题:

#if DEBUG
                if( title.Culture == null || title.Religion == null )
                {

                }
#endif

如果我删除这些行,它编译没有问题。如果我将 if 语句更改为if ( true ) {}它编译得很好。

重新启动 Visual Studio 没有帮助。我也试过重启我的电脑。据我所知,.Net 框架和 Visual Studio 都是最新的。

我正在使用 Visual Studio 2012,3.5 的目标框架,默认语言级别,CSS 版本 3.0

[编辑] 它现在又开始工作了。我所做的只是从输出到日志中删除 title.TitleID 的输出。

Log( " --Title in Ignore List: " + title.TitleID );意思是我改变了喜欢的东西Log( " --Title in Ignore List" );

的内容title是在运行时决定的,它foreach是列表上循环的对象。

更奇怪的是,如果我将这个类添加到项目中:

public class DebugBreak
{
    [Conditional("DEBUG")]
    public static void TitleIDBreak( Title title, string id )
    {
        if ( title.TitleID == id )
            System.Diagnostics.Debugger.Break();
    }
}

但是,甚至不要对它做任何事情,然后它就可以工作。我什至不必调用该方法。只需将文件的构建操作从 None 更改为 Compile 即可。

4

3 回答 3

1

这通常是由 Avast 引起的。

如果您正在运行该防病毒软件,请为您的项目文件夹添加排除项。

我过去曾多次搜索过这个。它是一个文件访问问题,所以它可能根本不是你的代码。

于 2015-04-26T16:39:40.823 回答
0

什么类型的标题?它甚至被定义了吗?即使未定义 DEBUG,也会检查语句的语义。

我猜你的代码没有编译。

C# 不像早期的 C 编译器那样使用“预处理器”,在这种编译器中,文件甚至在编译器看到之前就已更改。

于 2013-08-14T17:29:25.270 回答
0

您编写的代码完全基于您发布的内容没有任何问题。

您可以尝试的一件事是使用Conditional属性进行调试。就像是:

[Conditional("DEBUG")]
static void TitleCheck(Title title)
{
    if( title.Culture == null || title.Religion == null )
    {
        System.Diagnostics.Debugger.Break();
    }
}


private void MyProductionFunction(Title title)
{
    // Do some stuff

    TitleCheck(title); //<< This function call will be omitted completely if 'debug' conditional isn't met.

    // Do more stuff
}
于 2013-08-14T17:41:55.920 回答