5

当我使用带有 Visual Studio 2010 的 WiX 3.x 创建一个名为“MyCustomActions”的 Windows Installer XML“C# 自定义操作项目”时,它会生成以下文件:

“CustomAction.config”、“CustomAction.cs”和项目文件“MyCustomActions.csproj”。

我们使用包含公司名称的程序集命名方案,因此我们将程序集名称更改为:CompanyName.ProductName.MyCustomActions

同时,我们将 CustomActions 类的默认命名空间和实际命名空间更改为 CompanyName.ProductName.MyCustomActions,以匹配 assemblyname 。

在不更改任何其他文件或类名的情况下这样做可以吗?

我想知道的是“CustomAction.config”文件的使用——它的名称是否必须以某种方式与输出程序集名称相关?我不确定如何使用“CustomAction.config”。

另外:“CustomAction.cs”文件包含一个名为“CustomActions”的类(注意复数形式),我们的命名约定规定类的代码文件应该与类本身同名,所以我们想重命名代码文件到“CustomActions.cs”。我很确定没关系……是吗?

最后,如果我们确实将 CustomAction 类重命名为其他名称,可以吗?同样,我只关心它与“CustomAction.config”的关系。

我想所有这些问题都可以归结为一个问题:“CustomAction.config”文件的名称与其余的命名空间、程序集和类名称之间有什么关系?

如果我有答案,它将回答我之前的所有问题。

4

2 回答 2

6

对于 WIX 自定义操作项目,无论您如何命名您的类或程序集或命名空间或其他任何名称,配置文件都必须始终命名为“CustomAction.config”(认为它在 WIX 中是硬编码的)并且它的构建操作在文件中VS 中的属性应设置为“内容”。项目中的其他任何东西都没有这样的要求。

此配置文件可以指定支持的 CLR 版本(实际上是推荐的),并且可以包含您的自定义操作 dll 可能需要的任何其他配置。

您的 dll 将能够使用标准的 .Net 应用程序配置 API 读取这些附加配置设置。

于 2012-08-30T10:14:19.323 回答
0

我已经使用配置文件在其他 .NET 框架以及已编译的框架中运行该应用程序。例如,如果我们使用 CLR 2.0(.NET Framework 2.0 或 3.5),则该应用程序无法在单独安装了 .NET Framework 4.0 的机器上运行。在这种情况下,如果我们在配置文件中设置以下代码并将配置文件与应用程序一起放置,它将在单独安装了 Framework 4.0 的机器上运行。

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>

我希望同样的理由在这里使用配置文件。

于 2012-08-23T04:16:11.127 回答