1

我有一个包含以下内容的 MyApp.exe.config:

<section name="keys" type="MyApp.KeysSection, MyApp" />

这按预期工作。但是,当我将 MyApp.exe 重命名为 MyApp.renamed.exe,并将配置文件重命名为 MyApp.renamed.exe.config 时,出现异常:“无法加载文件或程序集 'MyApp' 或其依赖项之一。系统找不到指定的文件”。

好的,所以这一定是因为配置文件仍在引用 MyApp 程序集。所以我将其更新为:

<section name="keys" type="MyApp.KeysSection, MyApp.renamed" />

当我运行应用程序时,我得到一个新的异常:“找到的程序集的清单定义与程序集引用不匹配”。

我了解上述消息的含义,但这是否意味着我无法重命名我的程序集而不生成新的清单文件?理想情况下,我希望能够重命名我的程序集,并让它仍然工作。这样做的原因是因为应用程序有各种“风格”,我想使用文件名,例如 MyApp.Flavour1.exe、MyApp.Flavour2.exe 等,但是如果不为每种风格生成不同的清单和配置文件,这将无法工作, 原来如此。

我要问的是,是否有一种方法可以创建我的程序集,以便重命名文件不会导致它抛出此异常。

4

1 回答 1

3

不幸的是,您不能以这种方式重命名程序集。有关详细信息,请参阅加载重命名的 C# 程序集会引发 FileNotFoundException

相反,您可能希望创建包含相同或相似文件的不同项目,或者将公用文件移动到单独的程序集,并让不同的“风格”程序集引用该公共程序集。

于 2012-09-12T11:35:28.840 回答