Резюме
Я открыл решение .NET461 в VisualStudio 2017 и 2019 и попытался скомпилировать его.Сборка жалуется, что ShimWindowsIdentity
не может быть найден в соответствующем тестовом проекте.Нет проблем со сборкой, особенно с ShimWindowsIdentity
в Visual Studio 2015.
Цель
Мне нужно подковать конструктор WindowsIdentity
в единицупроверить функцию.Я знаю, что есть возможность обернуть WindowsIdentity
, но это требует изменения кода (рефакторинг), которого я пока хочу избежать.
Попробовал до сих пор
У меня естьпробовал и проверял следующее, чтобы получить шайбы для WindowsIdentity
, работающие в VS 2017/2019:
- Удалил поддельные сборки и собрал их с нуля
- Отключил генерацию заглушки и явно добавилзаглушки и прокладки, необходимые для
mscorlib.fakes
- Проверено
TargetFrameworkVersion
v4.6.1
в проекте и тестовом проекте
mscorlib.fakes
<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
<Assembly Name="mscorlib" Version="4.0.0.0"/>
<StubGeneration>
<Clear />
<Add FullName="System.IO.Stream!"/>
</StubGeneration>
<ShimGeneration>
<Clear/>
<Add FullName="System.Security.Principal"/>
<Add FullName="System.DateTime!"/>
<Add FullName="System.IO.Stream!"/>
</ShimGeneration>
</Fakes>
Ожидается
Создаются прокладки для WindowsIdentiy
.
Фактические
Я вижу вmscorlib.4.0.0.0.Fakes.messages
следующее предупреждение: Cannot generate shim for System.Security.Principal.WindowsIdentity: type is not supported because it is not available or changed between versions.