Как НЕ отлаживать указанную dll?C#

Место общения программистов C#
Ответить
Anonymous
 Как НЕ отлаживать указанную dll?

Сообщение Anonymous »

Я использую релизную версию dll, на которую есть ссылки в другом проекте. Эта dll имеет обнаружение взлома во время работы отладчика (dll тоже моя, я не планирую делать что-то противозаконное), что дает ложноположительные результаты при отладке.
Есть ли такая опция в Visual Studio (2017-1019) не для «отладки» указанной dll, но при этом может отлаживать разрабатываемый код? «Отладка» означает, что я не хочу входить в эту конкретную dll, а просто хочу получить данные из метода так же, как я мог бы получить их в выпуске.
Например. :

Код: Выделить всё

//Release dll
int Sum (int a, int b)
{
bool TamperingDetected = CheckForTampering();
if (TamperingDetected)
return 0;
else
return a + b;
}

//Other project
MessageBox.Show(dll.Sum(1, 1));
Если я запущу эту часть кода в Release, я легко смогу получить правильное значение. Никакое вмешательство не будет обнаружено, если кто-то захочет перепроектировать этот метод, это очень легко сделать в Релизе «легально». Если я запускаю Debug, я всегда получаю 0. Как было сказано ранее, я не хочу входить в метод Sum, поэтому в этой dll не нужно выполнять отладку, но все остальное должно работать, как в Отладка.
Опция «Только мой код» не имеет значения.
История такова: одна команда создает эту DLL с обнаружением несанкционированного доступа, а другая ее использует. как NuGet. Теперь они не могут отладить свою часть кода, поскольку наша обнаруживает вмешательство и возвращает ложные значения.
Для другой команды было бы слишком тяжело иметь исходный код, поскольку тогда мы рискуем, что они сделают что-то не так во время сборки. в той части кода, которую они не знают.
Один из вариантов — предоставить им библиотеки Debug и Release, и они смогут переключаться между ними, как описано здесь: https://stackoverflow.com/a/7284102, но тогда мы теряем простоту совместного использования NuGet и по-прежнему рискуем, что dll Debug копируется вместо dll Release, что приводит к потере обнаружения несанкционированного доступа в конечном продукте. В этом случае NuGet всегда находится в выпуске.
Автоматическое переключение NuGets с переключением конфигурации отладки и выпуска невозможно, или я до сих пор не нашел способа, но это также было бы хороший вариант. Только если используется какой-то совершенно другой проект только для загрузки NuGets отладки и выпуска, а затем использования вышеупомянутого ответа, но мне это тоже не нравится.

Подробнее здесь: https://stackoverflow.com/questions/656 ... renced-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»