InternalsVisibleTo, не работающий на Управляемый С++

Всегда хорошо, чтобы сначала проверить, чтобы кнопка была кликабельной:

const button = element(by.id('ContentPlaceHolder1_MFALoginControl1_UserIDView_txtUserid_UiInput'));
await browser.wait(ExpectedConditions.elementToBeClickable(button));
await button.click();
12
задан Deduplicator 16 September 2014 в 01:47
поделиться

1 ответ

Я нашел ответ на это. C++ работает по-другому, чем другие языки. В дополнение к InternalsVisibleTo необходимо сослаться на блок с as_friend ключевым словом. Так как as_friend не является опцией в Добавить Ссылочном диалоговом окне, Вы не можете добавить ссылку проекта, вместо этого, необходимо добавить ссылку в каждом файле CPP, что Вам нужен он.

#using <A.dll> as_friend

Затем также необходимо изменить путь поиска блока для включения каталога сборки проекта A.

По моему скромному мнению, это повреждается и типично для управляемого С++, являющегося языком второго класса. Без способности сделать ссылки проекта, Вы заканчиваете тем, что сослались на блок в отладке сборки или выпускаете каталог. Это повреждает зависимости и единственный способ, которым можно заставить это ссылаться на корректный DLL, когда Вы изменяетесь, Ваша конфигурация от отладки до выпуска с ужасной ОТЛАДКОЙ #IFDEF и относительными путями для #using.

Я был также разочарован, что это не было упомянуто в документации InternalsVisibleToAttribute. Я должен был вырыть вокруг в документации C++ для нахождения информации.

Править: Документация для InternalsVisisbleTo была с тех пор обновлена со ссылкой на Друга блоки (C++) документ.

26
ответ дан 2 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: