Как я регистрирую файл DLL.NET в GAC?

Я сделал.NET .DLL файл, который я хочу зарегистрировать в GAC.

Я использовал эту команду в Командной строке Windows Server 2003:

C:\"Path of dll"\>gacutil /i dllname.dll
'gacutil' is not recognized as an internal or external command,
operable program or batch file.

Это говорит, что путь не корректен.

Я должен использовать это в.NET cmd подсказка? Если случается так, что, я не могу определить местоположение.NET cmd подсказка.

78
задан Ian Boyd 19 November 2019 в 19:47
поделиться

7 ответов

Это можно сделать с помощью инструмента gacutil . В простейшей форме:

gacutil /i yourdll.dll

Командная строка Visual Studio находится в меню «Пуск» в разделе Программы -> Visual Studio -> Инструменты Visual Studio .

96
ответ дан 24 November 2019 в 10:31
поделиться

Вам понадобится:

  • Сильное имя Ваша сборка (Visual Studio, Project Properties, вкладка подписания, подписать сборку)
  • Измените события сборки (свойства проекта, вкладка «События События», командная строка «Создание постройки).
   cd C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
   gacutil.exe /i "$(TargetPath)" /f /nologo
   gacutil /l "$(TargetName)" /nologo

Теперь, каждый раз, когда вы создаете свой проект, он будет установлен на GAC.

34
ответ дан 24 November 2019 в 10:31
поделиться

Просто перетащите файл DLL в папку C:\Windows\assembly с помощью проводника Windows.

Caveat:

В более ранних версиях .NET Framework, Shfusion.dll Windows расширение оболочки позволяет устанавливать сборки, перетаскивая их в Файл Эксплорер. Начиная с .NET Framework 4, Shfusion.dll устарел.

Источник: Как: Установить сборку в кэш глобальной сборки

17
ответ дан 24 November 2019 в 10:31
поделиться

Попробуйте GACView , если вы боитесь командной строки.

Вы неправильно установили ПУТЬ в DOS. Вам нужно указать путь к месту, где находится gacutil, чтобы использовать его в DOS.

3
ответ дан 24 November 2019 в 10:31
поделиться

Отправьте текст даты и формат, в которых отправляется текст даты, в следующем методе. Он будет проанализирован и возвращен как дата, и это не зависит от браузера.

function cal_parse_internal(val, format) {
val = val + "";
format = format + "";
var i_val = 0;
var i_format = 0;
var x, y;
var now = new Date(dbSysCurrentDate);
var year = now.getYear();
var month = now.getMonth() + 1;
var date = now.getDate();

while (i_format < format.length) {
    // Get next token from format string
    var c = format.charAt(i_format);
    var token = "";
    while ((format.charAt(i_format) == c) && (i_format < format.length)) {
        token += format.charAt(i_format++);
    }
    // Extract contents of value based on format token
    if (token == "yyyy" || token == "yy" || token == "y") {
        if (token == "yyyy") { x = 4; y = 4; }
        if (token == "yy")   { x = 2; y = 2; }
        if (token == "y")    { x = 2; y = 4; }
        year = _getInt(val, i_val, x, y);
        if (year == null) { return 0; }
        i_val += year.length;
        if (year.length == 2) {
            if (year > 70) {
                year = 1900 + (year - 0);
            } else {
                year = 2000 + (year - 0);
            }
        }
    } else if (token == "MMMM") {
        month = 0;
        for (var i = 0; i < MONTHS_LONG.length; i++) {
            var month_name = MONTHS_LONG[i];
            if (val.substring(i_val, i_val + month_name.length) == month_name) {
                month = i + 1;
                i_val += month_name.length;
                break;
            }
        }
        if (month < 1 || month > 12) { return 0; }
    } else if (token == "MMM") {
        month = 0;
        for (var i = 0; i < MONTHS_SHORT.length; i++) {
            var month_name = MONTHS_SHORT[i];
            if (val.substring(i_val, i_val + month_name.length) == month_name) {
                month = i + 1;
                i_val += month_name.length;
                break;
            }
        }
        if (month < 1 || month > 12) { return 0; }
    } else if (token == "MM" || token == "M") {     
        month = _getInt(val, i_val, token.length, 2);
        if (month == null || month < 1 || month > 12) { return 0; }
        i_val += month.length;
    } else if (token == "dd" || token == "d") {
        date = _getInt(val, i_val, token.length, 2);
        if (date == null || date < 1 || date > 31) { return 0; }
        i_val += date.length;
    } else {
        if (val.substring(i_val, i_val+token.length) != token) {return 0;}
        else {i_val += token.length;}
    }
}

// If there are any trailing characters left in the value, it doesn't match
if (i_val != val.length) { return 0; }

// Is date valid for month?
if (month == 2) {
    // Check for leap year
    if ((year%4 == 0 && year%100 != 0) || (year%400 == 0)) { // leap year
        if (date > 29) { return false; }
    } else {
        if (date > 28) { return false; }
    }
}
if (month == 4 || month == 6 || month == 9 || month == 11) {
    if (date > 30) { return false; }
}
return new Date(year, month - 1, date);
}
-121--852877-

Посмотрите, как вычисляется и сравнивается POWER фреймворков. Спасибо

Основные баллы:

PHP4
PHP5
MVC
Несколько баз данных
ORM
Объекты БД
Шаблоны
Кэширование
Проверка
Аякс
Модуль проверки подлинности
Модули
EDP Маршрутизация

-121--4013036-

Как и раньше, просто перетащите сборку в папку сборки C :\windows\. Работает.

3
ответ дан 24 November 2019 в 10:31
поделиться

Из Википедии :

gacutil.exe - это утилита .NET, используемая для работы с GAC .

Можно проверить доступность общей сборки в GAC с помощью команды:

gacutil.exe /l "assemblyName"

Можно зарегистрировать общую сборку в GAC с помощью команды:

gacutil.exe /i "assemblyName"

Или перетащив файл сборки в следующее место с помощью графического интерфейса:

%windir%\assembly\

Другие параметры этой утилиты будут кратко описаны, если вы используете флаг /? , то есть:

gacutil.exe /?
11
ответ дан 24 November 2019 в 10:31
поделиться

Эти ответы не говорят вам, что gacutil находится в каталоге C:\WINDOWS\Microsoft.NET\Framework\v1.1*. кстати.

У меня его не было в папке v2.0. Но я попробовал перетащить DLL в папку C:\WINDOWS\Assembly, как было предложено здесь ранее, и это было проще и действительно работает, если это библиотека .NET. Я также попробовал COM-библиотеку, но это не сработало с ошибкой, что она ожидает манифест сборки. Я знаю, что вопрос был не в этом, но я подумал, что упомяну об этом на случай, если кто-то обнаружит, что не может добавить ее, что это может быть причиной.

-Tom

12
ответ дан 24 November 2019 в 10:31
поделиться
Другие вопросы по тегам:

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