Ответ 1
Microsoft уже сделала доступными соответствующие сборки в виде пакетов на NuGet.
System.ServiceModel.Primitives - базовый пакет; добавьте другие, если это необходимо, в ваш проект.
У меня есть проект .NET Core xUnit. Я пытаюсь вызвать из него службу WCF, но получаю следующее исключение:
System.InvalidOperationException occurred
HResult=0x80131509
Message=An error occurred while loading attribute 'ServiceContractAttribute' on type 'IMyContract'. Please see InnerException for more details.
Inner Exception 1:
FileNotFoundException: Could not load file or assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified.
Он работает с проектом Framework 4.7 с тем же пакетом Nuget System.ServiceModel.Http.4.3.0
.
Microsoft уже сделала доступными соответствующие сборки в виде пакетов на NuGet.
System.ServiceModel.Primitives - базовый пакет; добавьте другие, если это необходимо, в ваш проект.
Если вы используете .NET Standard 2.0
(что я тестировал), вы можете установить совместимые пакеты NuGet
.
Базовая модель обслуживания доступна в System.ServiceModel.Primitives
(в настоящее время v4.4.0).
При необходимости установите System.ServiceModel.Http
.
Поставщик ссылок на веб-службы Microsoft WCF упаковывает файл SvcUtil.exe и создает проект .NET Standard из вашей конечной точки. Посмотрите в файле проекта, и вы увидите ссылки ServiceModel, которые будут работать для вас.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ServiceModel.Duplex" Version="4.3.0" />
<PackageReference Include="System.ServiceModel.Http" Version="4.3.0" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.3.0" />
<PackageReference Include="System.ServiceModel.Security" Version="4.3.0" />
<PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
</ItemGroup>
</Project>
Когда мне нужно было это сделать, я смог использовать сгенерированную библиотеку классов в своем проекте .NET Core.