Sdílet prostřednictvím


ClientBuildManagerParameter.StrongNameKeyContainer Vlastnost

Definice

Získá nebo nastaví kontejner klíčů použitý během kompilace.

public:
 property System::String ^ StrongNameKeyContainer { System::String ^ get(); void set(System::String ^ value); };
public string StrongNameKeyContainer { get; set; }
member this.StrongNameKeyContainer : string with get, set
Public Property StrongNameKeyContainer As String

Hodnota vlastnosti

A String hodnoty kontejneru klíčů.

Příklady

Následující příklad kódu je podobný příkladu kódu v přehledu ClientBuildManager třídy s tím rozdílem, že výsledné sestavení bude mít silný název založený na poskytnutém kontejneru klíčů. Bude předkompilovat podle zadaných PrecompilationFlags hodnot.


using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Compilation;
using System.Security;
using System.Security.Permissions;

namespace PrecompBuildSystem
{
    [PermissionSet(SecurityAction.Demand, Unrestricted = true)]
    public class PrecompBuilder
    {
        private static ClientBuildManager builder;
        private static String _vPath;	// Virtual
        private static String _pPath;	// Physical
        private static String _tPath;	// Target
        private static PrecompilationFlags _flags;
        private static ClientBuildManagerParameter _cbmParameter;
        private static String _keyContainer;

        public static void Main(string[] args)
        {
            // Check arguments.
            if (ValidateAndSetArguments(args))
            {
                _cbmParameter = new ClientBuildManagerParameter();
                _cbmParameter.PrecompilationFlags = _flags;
                _cbmParameter.StrongNameKeyContainer = _keyContainer;

                builder = new
                        ClientBuildManager(_vPath, _pPath, _tPath, _cbmParameter);
                // Pre-compile.
                if (Precompiler())
                {
                    Console.Write("Build succeeded. Result is at " + _tPath + ".");
                }
            }
        }

        private static bool ValidateAndSetArguments(string[] args)
        {
            try
            {
                if (args.Length > 0)
                {
                    _vPath = args[0];
                }
                else
                {
                    _vPath = (string)AppSettingsExpressionBuilder.GetAppSetting
                        ("virtualDirectory");
                }

                if (args.Length > 1)
                {
                    _pPath = args[1];
                }
                else
                {
                    _pPath = (string)AppSettingsExpressionBuilder.GetAppSetting
                        ("physicalDirectory");
                }

                if (args.Length > 2)
                {
                    _tPath = args[2];
                }
                else
                {
                    _tPath = (string)AppSettingsExpressionBuilder.GetAppSetting
                        ("targetDirectory");
                }

                if (args.Length > 3)
                {
                    string[] precompFlags = args[3].Split('|');
                    foreach (string flag in precompFlags)
                    {
                        _flags |= (PrecompilationFlags)Enum.Parse
                            (typeof(PrecompilationFlags), flag.Trim());
                    }
                }
                else
                {
                    _flags = PrecompilationFlags.Clean |
                        PrecompilationFlags.ForceDebug;
                }

                if (args.Length > 4)
                {
                    _keyContainer = args[4];
                }

                return true;
            }
            catch (Exception e)
            {
                OutputErrorList(e);
            }
            return false;
        }
        private static void OutputErrorList(Exception e)
        {
            Console.Write("Error: " + e.Message);
        }

        private static bool Precompiler()
        {
            try
            {
                builder.PrecompileApplication();

                // The precompilation was successful.
                return true;
            }
            catch (Exception e)
            {
                OutputErrorList(e);
            }

            // The precompilation failed.
            return false;
        }
    }
}

Imports System.Web.Compilation
Imports System.Security
Imports System.Security.Permissions
Namespace PrecompBuildSystem

    <PermissionSet(SecurityAction.Demand, Unrestricted:=true)> _
    Public Class PrecompBuilder
        Private Shared builder As ClientBuildManager
        Private Shared _vPath As String ' Virtual
        Private Shared _pPath As String ' Physical
        Private Shared _tPath As String ' Target
        Private Shared _flags As PrecompilationFlags
        Private Shared _cbmParameter As ClientBuildManagerParameter
        Private Shared _keyContainer As String

        Public Shared Sub Main(ByVal args As String())
            ' Check arguments.
            If (ValidateAndSetArguments(args)) Then

                _cbmParameter = New ClientBuildManagerParameter()
                _cbmParameter.PrecompilationFlags = _flags
                _cbmParameter.StrongNameKeyContainer = _keyContainer

                builder = New ClientBuildManager(_vPath, _pPath, _tPath, _cbmParameter)
                ' Pre-compile.
                If (Precompiler()) Then
                    Console.Write("Build succeeded. Result is at " + _tPath + ".")
                End If
            End If
        End Sub

        Private Shared Function ValidateAndSetArguments(ByVal args As String()) As Boolean
            Try
                If (args.Length > 0) Then
                    _vPath = args(0)
                Else
                    _vPath = AppSettingsExpressionBuilder.GetAppSetting("virtualDirectory")
                End If

                If (args.Length > 1) Then
                    _pPath = args(1)
                Else
                    _pPath = AppSettingsExpressionBuilder.GetAppSetting("physicalDirectory")
                End If

                If (args.Length > 2) Then
                    _tPath = args(2)
                Else
                    _tPath = AppSettingsExpressionBuilder.GetAppSetting("targetDirectory")
                End If

                If (args.Length > 3) Then
                    Dim precompFlags As String()
                    precompFlags = args(3).Split("|"c)
                    For Each flag As String In precompFlags
                        _flags = _flags Or [Enum].Parse(GetType(PrecompilationFlags), flag.Trim())
                    Next
                Else
                    _flags = PrecompilationFlags.Clean Or PrecompilationFlags.ForceDebug
                End If

                If (args.Length > 4) Then
                    _keyContainer = args(4)
                End If
                Return True
            Catch e As Exception
                OutputErrorList(e)
            End Try
            Return False
        End Function

        Private Shared Sub OutputErrorList(ByVal e As Exception)
            Console.Write("Error: " + e.Message)
        End Sub

        Private Shared Function Precompiler() As Boolean
            Try
                builder.PrecompileApplication()

                ' The precompilation was successful.
                Return True
            Catch e As Exception
                OutputErrorList(e)
            End Try

            ' The precompilation failed.
            Return False
        End Function
    End Class
End Namespace

Poznámky

StrongNameKeyContainer Vlastnost nebo StrongNameKeyFile vlastnost je přiřazena hodnota pro vytvoření sestavení se silným názvem. Obě hodnoty nemusí být nastaveny k vytvoření sestavení se silným názvem.

Platí pro

Viz také