codesmith 是我时不时才拿出的工具之一, 但当我这样做的时候, 它真的派上用场。由于我对 codesmith 的使用相当有限, 我发现 codesmith 的免费软件版本正好满足了我的需求。
因此, 不用说, 当我开始 codesmith 看到一条错误消息, 通知我它需要. net 1.1 操作时, 我感到很失望。明智的做法本来是安装. net 1.1, 但这似乎是一个很大的麻烦, 因为我 (否则) 没有使用. net 1.1。我知道应用程序将尝试在没有1.1 的情况下在. net 2.0 下执行, 除非明确指示它不要这样做, 因此我开始查找阻止它运行的原因。
我首先转到 CodeSmith.exe.config 文件, 在那里我看到:
<startup></startup> <supportedRuntime version="v1.1.4322"></supportedRuntime> <supportedRuntime version="v1.0.3705"></supportedRuntime> <requiredRuntime version="v1.0.3705"></requiredRuntime>
从上面可以很容易地看出为什么程序拒绝运行。它被配置为仅在. net 运行时的特定版本下运行。通过注释出配置元素并保存配置文件, 我能够强制 codesmith 2.6 在. net 2.0 下运行。
除了让它运行之外, 还有一个好处, 那就是允许您从 codesmith 模板中使用. net 2.0 功能 (如泛型)。考虑到应用程序从未打算在. net 2.0 下运行, 存在明显的崩溃和其他错误行为的可能性。虽然我从未遇到过任何问题, 但我不会完全排除为什么兼容性配置可能首先存在。