Как Вы устанавливаете файлы в блоке в Windows Server 2008?

Вот мое решение

public class GenericClass<T>
{
    private Class<T> realType;

    public GenericClass() {
        findTypeArguments(getClass());
    }

    private void findTypeArguments(Type t) {
        if (t instanceof ParameterizedType) {
            Type[] typeArgs = ((ParameterizedType) t).getActualTypeArguments();
            realType = (Class<T>) typeArgs[0];
        } else {
            Class c = (Class) t;
            findTypeArguments(c.getGenericSuperclass());
        }
    }

    public Type getMyType()
    {
        // How do I return the type of T? (your question)
        return realType;
    }
}

Независимо от того, сколько уровней ваша иерархия классов, это решение все еще работает, например:

public class FirstLevelChild<T> extends GenericClass<T> {

}

public class SecondLevelChild extends FirstLevelChild<String> {

}

В этом случае, getMyType () = java.lang.String

16
задан starblue 25 April 2009 в 10:05
поделиться

5 ответов

Это проблема UAC на сервере 2008, некоторые Люди рекомендовали остановить UAC, я бы не рекомендовал это на производственном сервере. Ответ - , чтобы использовать gacutil.

Вам не нужно устанавливать SDK для запуска его на производственном сервере, exe и его файл конфигурации можно развернуть с компьютера разработчика (и при желании удалить после использования).

Поместите gacutil.exe и gacutil.exe.config в папку WINDOWS \ Microsoft.NET \ Framework \, соответствующую используемой версии платформы.

Затем запустите новый экземпляр командной строки, используя команду «Запуск от имени администратора».

Перейдите в папку C: \ WINDOWS \ Microsoft.NET \ Framework ...., в которой вы развернули gacutil

Затем выполните: gacutil.exe / i

Надеюсь, это решит вашу проблему (она сработала для меня).

Удачи.

21
ответ дан 30 November 2019 в 17:40
поделиться

Перейдите к Visual Studio или командной строке.NET и введите команду:

gacutil -if "fullpathhere.dll"

исследуют gacutil, управляют больше. - ЕСЛИ средства устанавливают сильно, также существуют другие опции.

, Если не будет никакого установленного SDK Платформы Visual Studio или.NET, то у Вас не будет командной строки.NET. В этом случае я думаю, что необходимо будет выключить контроль учётных записей от Панели управления до перетаскивать-отбрасывания блок в папку Assembly.

4
ответ дан 30 November 2019 в 17:40
поделиться

Я никогда не пробовал его в Windows Server 2008, но Вы попробовали от Панели управления / Средства администрирования / Платформа.NET 2.0 Конфигурации?

0
ответ дан 30 November 2019 в 17:40
поделиться

Запустите командную строку с помощью «Запуск от имени администратора». Выполните команду «проводник C: \ windows \ assembly». Это окно принимает удаление DLL из другого проводника, запущенного с правами «Запуск от имени администратора».

Надеюсь, это поможет

2
ответ дан 30 November 2019 в 17:40
поделиться

Если вы измените локальную политику безопасности на сервере Win2008 (или Win7), вы можете использовать старый метод перетаскивания:

http://blogs.msdn.com/b/mossbiz/archive/2010/ 06/10 / add-an-assembly-to-the-global-assembly-cache-on-windows-server-2008-r2.aspx

1
ответ дан 30 November 2019 в 17:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: