2016-07-15 3 views
3

В .Net Core есть некоторые изменения в API, которые необходимы ресурсам resx/designer.cs..Net Framework .resx переносимость .Net Core

В частности Type больше не имеет Assembly свойство непосредственно на него ... Ядро получает это через Type.GetTypeInfo().Assembly

Результатом является designer.cs файлы несовместимы между рамками, поэтому несколько целевых раствор не может использовать файлы ресурсов без компиляции провала попытки:

ConnectionDetails.Designer.cs(42,170): error CS1061: 'Type' does not contain a definition 
for 'Assembly' and no extension method 'Assembly' accepting a first argument of type 'Type' 
could be found (are you missing a using directive or an assembly reference?) 

Visual Studio знает, как произвести это правильно в зависимости от типа проекта/решения, но и для нескольких, ориентированных решений, это не очень поможет.

Мне не удалось найти обходное решение, которое работает для обеих фреймворков, поскольку designer.cs генерируется автоматически.

Кому-нибудь придумали решение для этого?

ответ

1

Это a known bug, вызванный тем фактом, что Visual Studio использует только первый элемент в списке целевых инфраструктур с целью генерации кода Resx. Чтобы обойти эту проблему, чтобы переместить рамки .Net Ядро или .Net Standard в первой позиции в списке целевых-рамочный, т.е.

<PropertyGroup> 
    <TargetFrameworks>netstandard1.0;netstandard1.3;net45</TargetFrameworks> 
</PropertyGroup> 
Смежные вопросы