Это самая странная проблема программирования, которую я видел в течение длительного времени.
Я использую Microsoft Visual C# 2010 Express
, C#
и .NET 2.0
для разработки приложения. Это приложение ссылается на пару dll
/сборок (все эти библиотеки генерируются на моей машине).
Ниже приведена часть кода (это все основные вещи):
public class PowerManagement
{
[TestCase]
public void PrepareTest(){
// Configure according to pre-conditions
Preconditions precondition = new Preconditions();
precondition.SetupPreconditions();
...
}
[TestCase]
public void PerformTest(){
TestcaseData testcaseData = new TestcaseData();
// Set Trigger and perform check
switch (testcaseData.triggerNumber){
case (1):
if ((new Trigger1(testcaseData)).Validate() != 1)
Report.TestStepFail("failed");
break;
...
case (4):
if ((new Trigger4(testcaseData)).Validate() != 1)
Report.TestStepFail("failed");
break;
default:
Report.TestStepFail("Not yet implemented");
break;
}
}
}
Это приложение затем сгенерируется в dll
из Visual C# 2010 Express
и используется в другом месте, и все в порядке. Проблема возникает, когда я добавляю другой случай в оператор switch (см. Ниже)
...
case (4):
if ((new Trigger4(testcaseData)).Validate() != 1)
Report.TestStepFail("failed");
break;
case (5):
if ((new Trigger5(testcaseData)).Validate() != 1)
Report.TestStepFail("failed");
break;
default:
Report.TestStepFail("Not yet implemented");
break;
Я все еще могу построить без единой проблемы и генерировать dll, но когда я использую сгенерированную dll, я получаю следующую ошибку:
A .NET exception (InvalidProgramException) occured in the module PowerManagement
Error message: Common Language Runtime detected an invalid program.
Throwing method: PowerManagement.PerformTest
(проблема возникает, даже если я скопирую case(4)
и вставляю ее как новый случай, поэтому она не имеет ничего общего с Trigger5
-class)
Что здесь происходит? Я просмотрел другие InvalidProgramException
и Common Language Runtime
в Stackoverflow, но ни один из них не был связан.
Я знаю, что эта проблема странная, поэтому, пожалуйста, дайте мне знать, и я предоставлю дополнительную информацию. Я использую 64-битную машину Windows 8, если это имеет значение. Я уже проверял обновления для VS и .NET обновлений. Я havet также регенерировал все dlls пару раз и также создал решение с нуля пару раз.