ClientBuildManagerParameter.StrongNameKeyContainer Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den während der Kompilierung verwendeten Schlüsselcontainer ab oder legt diesen fest.
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
Eigenschaftswert
Ein String des Werts für den Schlüsselcontainer.
Beispiele
Das folgende Codebeispiel ähnelt dem Codebeispiel in der Klassenübersicht, mit dem ClientBuildManager Unterschied, dass die resultierende Assembly basierend auf dem bereitgestellten Schlüsselcontainer einen starken Namen hat. Es wird gemäß den angegebenen PrecompilationFlags Werten vorkompiliert.
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
Hinweise
Entweder der StrongNameKeyContainer -Eigenschaft oder der StrongNameKeyFile -Eigenschaft wird ein Wert zugewiesen, um eine Assembly mit starkem Namen zu erstellen. Beide Werte müssen nicht festgelegt werden, um eine Assembly mit starkem Namen zu erstellen.