1

我使用了一个教程(http://support.microsoft.com/kb/837908,方法 1)来生成两个项目。项目 a 引用了项目 b。

项目一:

new System.EnterpriseServices.Internal.Publish().GacRemove(string.Format(@"C:\Users\[me]\Documents\Visual Studio 2010\Projects\MyAssembly1\MyAssembly1\bin\Debug\MyAssembly1.dll"));
new System.EnterpriseServices.Internal.Publish().GacInstall(string.Format(@"C:\Users\[me]\Documents\Visual Studio 2010\Projects\MyAssembly1\MyAssembly1\bin\Debug\MyAssembly1.dll"));
MyAssembly1.Class1 obj1 = new MyAssembly1.Class1();
MessageBox.Show(obj1.HelloWorld());

项目b:

    public string HelloWorld()
    {
        return "1";
    }

当我执行以下操作时:

  1. 将项目 b 中的“HelloWorld”方法更改为返回“2”(而不是“1”)。

  2. 建设项目b

  3. 构建项目 a 并运行它

我收到带有“1”作为文本的消息框,GAC 并不总是自行更新。

更新项目 b 并在项目 a 上查看它的最简单方法是什么?

4

1 回答 1

0

首先,更改 GAC 不太可能帮助已经运行的流程。在这种特定情况下,请注意 JIT在方法执行之前按方法发生。这意味着 MyAssembly1 在删除/安装步骤之前已解决并加载。但是,这并不能改变这样一个事实,即这不太可能是一个好方法。

于 2012-08-05T14:49:00.497 回答