通过 -appconfig 编译器选项,X# 应用程序可以在程序集绑定时向公共语言运行时(CLR)指定程序集应用程序配置 (app.config) 文件的位置。
-appconfig:file
file | 必需。包含程序集绑定设置的应用程序配置文件。 |
-appconfig 的一个用途是在高级场景中,程序集必须同时引用特定引用程序集的 .NET Framework 版本和 .NET Framework for Silverlight 版本。例如,使用 Windows Presentation Foundation (WPF) 编写的 XAML 设计器可能需要同时引用用于设计器用户界面的 WPF Desktop 和 Silverlight 中包含的 WPF 子集。同一个设计器程序集必须访问这两个程序集。默认情况下,单独引用会导致编译器出错,因为程序集绑定将这两个程序集视为等价。
通过 -appconfig 编译器选项,您可以使用 <supportPortability> 标记指定 app.config 文件的位置,从而禁用默认行为,如下例所示。
<supportPortability PKT="7cec85d7bea7798e" enable="false"/>
编译器会将文件的位置传递给 CLR 的汇编绑定逻辑。
注意
如果使用 Microsoft Build Engine (MSBuild) 生成应用程序,可以通过在 .xsproj 文件中添加属性标记来设置 -appconfig 编译器选项。要使用项目中已设置的 app.config 文件,请在 .xsproj 文件中添加属性标记 <UseAppConfigForCompiler> 并将其值设为 true。要指定不同的 app.config 文件,请添加属性标记 <AppConfigForCompiler> 并将其值设置为文件的位置。
下面的示例显示了一个 app.config 文件,该文件可使应用程序同时引用 .NET Framework 实现和 .NET Framework for Silverlight 实现中的任何 .NET Framework 程序集。编译器选项 -appconfig 指定了该 app.config 文件的位置。
<configuration>
<runtime>
<assemblyBinding>
<supportPortability PKT="7cec85d7bea7798e" enable="false"/>
<supportPortability PKT="31bf3856ad364e35" enable="false"/>
</assemblyBinding>
</runtime>
</configuration>