Есть ли такая опция в 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));
Опция «Только мой код» не имеет значения.
История такова: одна команда создает эту DLL с обнаружением несанкционированного доступа, а другая ее использует. как NuGet. Теперь они не могут отладить свою часть кода, поскольку наша обнаруживает вмешательство и возвращает ложные значения.
Для другой команды было бы слишком тяжело иметь исходный код, поскольку тогда мы рискуем, что они сделают что-то не так во время сборки. в той части кода, которую они не знают.
Один из вариантов — предоставить им библиотеки Debug и Release, и они смогут переключаться между ними, как описано здесь: https://stackoverflow.com/a/7284102, но тогда мы теряем простоту совместного использования NuGet и по-прежнему рискуем, что dll Debug копируется вместо dll Release, что приводит к потере обнаружения несанкционированного доступа в конечном продукте. В этом случае NuGet всегда находится в выпуске.
Автоматическое переключение NuGets с переключением конфигурации отладки и выпуска невозможно, или я до сих пор не нашел способа, но это также было бы хороший вариант. Только если используется какой-то совершенно другой проект только для загрузки NuGets отладки и выпуска, а затем использования вышеупомянутого ответа, но мне это тоже не нравится.
Подробнее здесь: https://stackoverflow.com/questions/656 ... renced-dll
Мобильная версия