本文整理汇总了C#中System.Deployment.Application.ApplicationDeployment.DownloadFileGroup方法的典型用法代码示例。如果您正苦于以下问题:C# ApplicationDeployment.DownloadFileGroup方法的具体用法?C# ApplicationDeployment.DownloadFileGroup怎么用?C# ApplicationDeployment.DownloadFileGroup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Deployment.Application.ApplicationDeployment
的用法示例。
在下文中一共展示了ApplicationDeployment.DownloadFileGroup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
namespace ClickOnceOnDemand
{
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Unrestricted=true)]
public class Form1 : Form
{
// Maintain a dictionary mapping DLL names to download file groups. This is trivial for this sample,
// but will be important in real-world applications where a feature is spread across multiple DLLs,
// and you want to download all DLLs for that feature in one shot.
Dictionary<String, String> DllMapping = new Dictionary<String, String>();
public static void Main()
{
Form1 NewForm = new Form1();
Application.Run(NewForm);
}
public Form1()
{
// Configure form.
this.Size = new Size(500, 200);
Button getAssemblyButton = new Button();
getAssemblyButton.Size = new Size(130, getAssemblyButton.Size.Height);
getAssemblyButton.Text = "Test Assembly";
getAssemblyButton.Location = new Point(50, 50);
this.Controls.Add(getAssemblyButton);
getAssemblyButton.Click += new EventHandler(getAssemblyButton_Click);
DllMapping["ClickOnceLibrary"] = "ClickOnceLibrary";
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
}
/*
* Use ClickOnce APIs to download the assembly on demand.
*/
private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
Assembly newAssembly = null;
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment deploy = ApplicationDeployment.CurrentDeployment;
// Get the DLL name from the Name argument.
string[] nameParts = args.Name.Split(',');
string dllName = nameParts[0];
string downloadGroupName = DllMapping[dllName];
try
{
deploy.DownloadFileGroup(downloadGroupName);
}
catch (DeploymentException de)
{
MessageBox.Show("Downloading file group failed. Group name: " + downloadGroupName + "; DLL name: " + args.Name);
throw (de);
}
// Load the assembly.
// Assembly.Load() doesn't work here, as the previous failure to load the assembly
// is cached by the CLR. LoadFrom() is not recommended. Use LoadFile() instead.
try
{
newAssembly = Assembly.LoadFile(Application.StartupPath + @"\" + dllName + ".dll," +
"Version=1.0.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33");
}
catch (Exception e)
{
throw (e);
}
}
else
{
//Major error - not running under ClickOnce, but missing assembly. Don't know how to recover.
throw (new Exception("Cannot load assemblies dynamically - application is not deployed using ClickOnce."));
}
return (newAssembly);
}
private void getAssemblyButton_Click(object sender, EventArgs e)
{
DynamicClass dc = new DynamicClass();
MessageBox.Show("Message: " + dc.Message);
}
}
}
开发者ID:.NET开发者,项目名称:System.Deployment.Application,代码行数:86,代码来源:ApplicationDeployment.DownloadFileGroup