【发布时间】:2012-09-25 17:19:16
【问题描述】:
using System;
using System.Collections.Generic;
using System.Text;
using Shapes;
namespace ShapeUser
{
public class ShapeUser
{
public static void Main()
{
Circle c = new Circle(1.0F);
Console.WriteLine("Area of Circle(1.0) is {0}", c.Area());
Console.ReadKey(); // press a key to exit program
}
}
}
此程序正在使用 GAC 中的 Shapes 程序集。如果只有一个程序集,那很好。但是,GAC 可能包含其他名称相同(但版本和密钥不同)的程序集。
那么,如何告诉 CLR 只加载我的程序集而不是其他同名的程序集?
我很困惑。我知道它受到公钥加密的保护,但我们仍然应该在我们访问它的程序中拥有一些私钥。请解开我的困惑。
【问题讨论】:
-
当您在项目中引用 Shapes 时,您可以指定使用特定版本。如果该特定版本不可用,您的程序将无法加载。
-
@托雷斯!假设我已经在其他地方部署了我的软件。现在我只是更新程序集版本(以增强它),我永远不希望我的应用程序是特定于版本的。我想如果我们提到“1.0.*”,它需要最新版本。
标签: c# .net gac .net-assembly