我收到了这个错误:
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就可以了。
答案 0 :(得分:1)
这通常是由Avast引起的。
如果您运行的是该防病毒软件,请为项目文件夹添加排除项。
我过去曾多次搜索过这个问题。它是一个文件访问问题,所以它可能根本不是你的代码。
答案 1 :(得分:0)
什么类型的标题?甚至定义了吗?即使未定义DEBUG,也会检查语句的语义。
我猜你的代码没有编译。
C#不使用"预处理器"比如早期的C编译器,在编译器甚至看到之前文件已被更改。
答案 2 :(得分: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
}