Поделиться через


Практическое руководство. Создание инструмента для получения полного имени сборки

Дата последнего изменения: 6 июля 2010 г.

Применимо к: SharePoint Foundation 2010

Проекты разработки SharePoint Foundation часто включают в себя сочетание кода и разметки XML. Часто в файл проекта, например, XML-файл конфигурации, добавляется полное имя новой сборки, состоящее из четырех частей. Если проект Visual Studio основан только на шаблонах проекта SharePoint 2010 в Visual Studio, можно просто вставить маркер $SharePoint.Project.AssemblyFullName$, где полное имя сборки должно присутствовать в большинстве файлов проекта (но не в файлах с расширением CS, VB или других компилируемых файлах). При построении или развертывании проекта в Visual Studio этот маркер заменяется полным именем сборки в фактически развертываемых копиях файлов. (Дополнительные сведения об использовании специализированных маркеров Visual Studio для SharePoint см. в статье Заменяемые параметры.)

В некоторых случаях может потребоваться вставка полного имени сборки в тип файла, который не поддерживает маркеры Visual Studio. Также возможны ситуации, в которых не используются шаблоны проекта SharePoint 2010. Например, некоторые расширения административных функций SharePoint включают в себя только обычное консольное приложение Microsoft .NET Framework. В этих ситуациях требуется знать фактическое полное имя сборки. В этом разделе рассматривается создание программы командной строки, которая получает полное имя любой сборки, и добавление этой программы в качестве элемента в меню Сервис Visual Studio, чтобы можно было использовать ее для получения полного имени разрабатываемой сборки.

Создание программы командной строки и получение полного имени сборки

  1. Откройте Visual Studio как администратор, щелкнув программу правой кнопкой мыши в меню Пуск и выбрав Запуск от имени администратора.

  2. Создайте новый проект консольного приложения. В диалоговом окне Создание проекта выберите Visual C# или Visual Basic, далее нажмите Windows, а затем выберите шаблон Консольное приложение. Назовите приложение "GetAssemblyName" и нажмите кнопку ОК.

  3. Замените все содержимое файла Program.cs (или Program.vb) одним из следующих примеров (в зависимости от языка программирования).

    using System;
    using System.Reflection;
    using System.IO;
    
    namespace GetAssemblyName
    {
        class Program
        {
            static void PrintUsage()
            {
                Console.WriteLine("Usage: GetAssemblyName.exe <path and filename>\n");
                Console.WriteLine(@"Example: GetAssemblyName.exe C:\MyAssembly.dll");
                Console.Read();
            }
    
            static void Main(string[] args)
            {
                if (args.Length < 1 || args[0] == "?")
                {
                    PrintUsage();
                    return;
                }
    
                string filename = args[0];
    
                try
                {
                    AssemblyName an = AssemblyName.GetAssemblyName(filename);
                    Console.WriteLine("Fully specified assembly name:\n");
                    Console.WriteLine(an.ToString());
                }
                catch (FileNotFoundException)
                {
                    Console.WriteLine("Cannot locate the assembly. Check the path and try again.");
                }
    
                Console.Read();
            }
        }
    }
    
    Imports System
    Imports System.IO
    Imports System.Reflection
    
    Module Module1
    
        Sub PrintUsage()
            Console.WriteLine("Usage: GetAssemblyName.exe <path and filename>" + vbCrLf)
            Console.WriteLine("Example: GetAssemblyName.exe C:\MyAssembly.dll")
            Console.Read()
        End Sub
    
        Sub Main(ByVal cmdArgs() As String)
    
            If cmdArgs.Length = 0 OrElse cmdArgs(0) = "?" Then
                PrintUsage()
                Return
            End If
    
            Dim filename As String = cmdArgs(0)
    
            Try
                Dim an As AssemblyName = AssemblyName.GetAssemblyName(filename)
                Console.WriteLine("Fully specified assembly name:" + vbCrLf)
                Console.WriteLine(an.ToString())
            Catch
                Console.WriteLine("Cannot locate the assembly. Check the path and try again.")
            End Try
    
            Console.Read()
        End Sub
    
    
    End Module
    
  4. Скомпилируйте и протестируйте приложение.

  5. Убедившись, что программа работает правильно, скопируйте исполняемый файл в постоянную папку на компьютере.

Добавление элемента "Получить полное имя сборки" в меню "Сервис"

  1. В Visual Studio выберите Внешние инструменты в меню Сервис.

  2. В диалоговом окне Внешние инструменты выберите Добавить и введите Получить полное имя сборки в поле Заголовок.

  3. Заполните текстовое поле Команда путем к файлу GetAssemblyName.exe.

  4. В текстовом поле Аргументы введите следующее (с учетом регистра) $(TargetPath).

  5. Установите флажок Использовать окно вывода.

  6. Нажмите кнопку ОК. Новая команда добавляется в меню Сервис.

Когда потребуется состоящее из четырех частей имя разрабатываемой сборки, нажмите команду Получить полное имя сборки в меню Сервис, и имя появится в окне вывода.

ПримечаниеПримечание

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

См. также

Концепции

Практическое руководство. Создание инструмента для получения открытого ключа сборки