Не может ссылаться на System.ServiceModel в Unity - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь использовать WCF в моем проекте Unity, поэтому мне нужно ссылаться на dll System.ServiceModel.Кроме того, вот еще некоторая информация о моей среде:

  • Unity 2018.1.5f1 Personal (64bit)
  • Windows 10 (64bit)

Using msc.rsp

Следуя документу Unity по загрузке внешних сборок , я создал файл msc.rsp в моем каталоге Assets/:

-r:System.ServiceModel.dll

В моем *Папка 1021 * У меня также есть файл C #, которому нужен WCF:

using System;
using System.ServiceModel;
using System.ServiceModel.Description;

public class CommunicationEndpoint {
    private const short Port = 8000;
    private ServiceHost host;

    public void Start() {
        this.EnsureInitilized();
        host.Open();
    }

    public void Stop() {
        if (this.host != null) return;
        host.Close();
    }

    private void EnsureInitilized() {
        if (this.host != null) return;

        this.host = new ServiceHost(typeof(CommunicationService));
        host.AddServiceEndpoint(typeof(ICommunicationService), new BasicHttpBinding(), Address);

        host.Open();
    }

    private string Address {
        get { return "http://localhost:" + Port; }
    }
}

Есть еще один файл, в котором определен интерфейс ICommunicationService, все еще часть ресурсов внутри Assets/.Здесь не сообщалось, поскольку это не очень полезно.

Все еще ошибки компиляции

В принципе, ничего не происходит в Unity: я все еще получаю ошибки во время компиляции, где сборка явно не была загружена вообще.

Errors in Unity

Примечание Я также повторно импортировал все, щелкнув правой кнопкой мыши на панели Assets в Unity и выбравReimport All чтобы убедиться, что проект C # регенерируется.Я вижу, что он восстановлен, но все равно ничего не меняется: те же проблемы.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

msc.rsp do включает System.ServiceModel.dll путем добавления содержимого

-r:System.ServiceModel.dll

для Unity Editor

Однако есть ошибка, что ссылка на dll не будет включена в csproj: https://issuetracker.unity3d.com/issues/httpclient-namespace-is-not-recognized-in-vs-with-net-4-dot-x

Вы можете попытаться решить проблему, изменив файл csproj самостоятельно: https://docs.microsoft.com/en-us/visualstudio/cross-platform/customize-project-files-created-by-vstu?view=vs-2017

ссылка: https://forum.unity.com/threads/using-dynamic-keyword-not-working.490600/

https://forum.unity.com/threads/httpclient.460748/

0 голосов
/ 24 июня 2018

Я попытался настроить подобный проект, где у меня был файл mcs.rsp с -r:System.ServiceModel.dll внутри, в то время как у меня была .cs ссылка на пространство имен ServiceModel, и у меня возникла та же проблема.

После изменения проекта Scripting Runtime Version на .NET 4.0 Equivalent и Api Compability Level на .NET 4.x он начал работать.

Если кажется, что часть API отсутствует, она может быть не включена в .NET Standard 2.0. Проекту может понадобиться использовать .NET 4.x Api Уровень совместимости вместо.

https://docs.unity3d.com/Manual/dotnetProfileAssemblies.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...