.NET CORE ALINK: предупреждение AL1073: ссылка на сборку «mscorlib.dll» предназначена для другого процессора - PullRequest
0 голосов
/ 25 октября 2019

Я использую VS2019 и .NET CORE 2.2. Я получаю предупреждение AL1073

Предупреждение ALINK AL1073: ссылка на сборку 'mscorlib.dll' предназначена для другого процессора

Я знаю, что это близкона вопрос как: ALINK: предупреждение AL1073: ссылка на сборку 'mscorlib.dll' предназначена для другого процессора

НО:

  1. Я на .NET CORE 2.2, а не на 4.x

  2. Предлагаемые там решения не работают на ядре .NET

в частности, попытка добавить:

<PropertyGroup> 
<TargetFrameworkSDKToolsDirectory Condition=" '$(PlatformTarget)' == 'x64'">$(TargetFrameworkSDKToolsDirectory)\$(PlatformTarget)\
</TargetFrameworkSDKToolsDirectory>
</PropertyGroup>

выдает еще одно предупреждение

Предупреждение MSB3084 Задача попыталась найти «al.exe» в двух местах. 1) В каталоге, специфичном для процессора \ x64, который создается на основе SdkToolsPath. 2) В каталоге, специфичном для x86, в каталоге \ x64 \, который указывается свойством SDKToolsPath. Вы можете решить проблему, выполнив одно из следующих действий: 1) Задайте для свойства «SDKToolsPath» расположение Microsoft Windows SDK. C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Current \ Bin \ Microsoft.Common.CurrentVersion.targets

Действительно странно, поскольку расположение в соответствии спредупреждение!

Дополнительно: я был бы рад отключить предупреждение в настройках сборки, так как все мои модульные тесты проходят, но добавление 1073 в список не влияет на предупреждение AL1073, которое все еще появляется.

В качестве альтернативы, предупреждение предлагает: Задайте для свойства SDKToolsPath местоположение Microsoft Windows SDK, как я могу это сделать?

ОБНОВЛЕНИЕ, чтобы ответить на комментарий: ЭтоТрудно воспроизвести в простой настройке. Проект ссылается на несколько проектов Github (fo-dicom), в частности. В библиотеке fo-dicom используются библиотеки изображений, созданные для 32 и 64 платформ. Я попытался установить 64 бит, но это не помогло. Я видел, как другие люди поднимали ошибку в сообществе VS, что подавление предупреждений кажется ошибочным: https://developercommunity.visualstudio.com/content/problem/224196/suppress-warnings-from-project-settings-build-does.html. Эта проблема была закрыта без продолжения, также MSFT заявил, что AL 1073 не будет исправлен, но я хотел бы отключить! не может быть предупреждений при использовании непрерывной интеграции ...

Я сейчас пытаюсь перекомпилировать все в .NET CORE 3.0, предоставит обновление, если оно будет работать.

ОБНОВЛЕНИЕ: После перекомпиляции в .NET CORE 3.0 у меня все еще есть проблема.

1 Ответ

2 голосов
/ 30 октября 2019

Мне удалось решить проблему, в моем случае мне понадобились 2 вещи:

  1. Предложение от gofal3, я ссылался на пакет .NET core fo-dicom изависимости от dicom (но не для рабочего стола fo-dicom).

  2. Кажется, у меня есть старая ссылка на Microsoft.ServiceFabric, похоже, что для этой ссылки требуется 64-битная, иначе мы получим предупреждение ( Служба Azure Service Fabric 32 bit )

Лэнс: я попытался предложить в блоге предложения для удаления предупреждения, но в моем случае это не помогло. обратите внимание, что из предупреждения, которое я получал, путь был тем же.

...