C# 如何从t4模板使用app.config中的自定义节

C# 如何从t4模板使用app.config中的自定义节,c#,.net,visual-studio-2010,.net-4.0,t4,C#,.net,Visual Studio 2010,.net 4.0,T4,我试图从VS2010中的t4模板访问app.config文件中的自定义节,但无法加载定义自定义节的程序集 我正在使用ConfigurationAccessor获取部分(参考) app.config: <configSections> <section name="MyProviders" type="System.Web.Security.MySection, MyAssembly" /> </configSections> <MyProvid

我试图从VS2010中的t4模板访问app.config文件中的自定义节,但无法加载定义自定义节的程序集

我正在使用ConfigurationAccessor获取部分(参考)

app.config:

<configSections>
    <section name="MyProviders" type="System.Web.Security.MySection, MyAssembly" />
</configSections>

<MyProviders default="SQLMyProvider">
  <providers>
    <add name="SQLMyProvider" ... connectionStringName="MyConnectionString" />
  </providers>
</MyProviders>
给出此错误:

运行转换: System.Configuration.ConfigurationErrorsException: 在创建时出错 的配置节处理程序 MyProviders:无法加载文件或 程序集“MyAssembly”或其 依赖关系。系统找不到 指定的文件

tt文件引用程序集,项目也引用程序集,但这似乎无助于加载配置部分。 我已经尝试将MySection类实现为tt代码块,但也无法在app.config中使用该类

有什么想法吗?

我认为
需要完整的程序集名称(版本、区域性、publickeytoken)


您需要将
MyAssembly
放在
GAC
或仅放在visualstudios
publicsassemblies
文件夹中,它才能找到它。后者的位置是
\Common7\IDE\publicsassemblies

,您在哪里尝试检索自定义节?我在使用不同的AppDomain时遇到同样的问题。我的问题是我的分区dll必须放在基本目录中,这样appdomain才能正确探测。
MySection section = (MySection)config.Configuration.GetSection("MyProviders");
type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"