PostSharp:识别正在编织的组件的项目类型?
PostSharp: Identify project type of assembly being woven?
有什么好的方法可以在编织时识别目标程序集的项目输出类型吗?我希望制作一个 IAspectProvider 应用不同的方面取决于目标是否是:
- ASP.NET 项目(网站、Web 应用程序)
- Windows 服务
- Desktop/Console申请
- Class图书馆
编辑:我接受了一个答案,因为它已经确定 PostSharp 中没有用于识别正在编织的项目类型的内置机制;它将需要手动指定或以不同的方式获取。
一种可能是通过 MSBuild 将此信息传递给 PostSharp。例如,您可以将其添加到您的 csproj:
<PostSharpProperties>$(PostSharpProperties);ProjectType=Console</PostSharpProperties>
在编译时,你可以这样读取属性 ProjectType
:
PostSharpEnvironment.CurrentProject.EvaluateExpression("{$ProjectType}")
文档:
这是将此信息传递给 PostSharp 的方法。另一个问题是如果您不想手动将其硬编码到项目文件中,如何获取此信息。
有什么好的方法可以在编织时识别目标程序集的项目输出类型吗?我希望制作一个 IAspectProvider 应用不同的方面取决于目标是否是:
- ASP.NET 项目(网站、Web 应用程序)
- Windows 服务
- Desktop/Console申请
- Class图书馆
编辑:我接受了一个答案,因为它已经确定 PostSharp 中没有用于识别正在编织的项目类型的内置机制;它将需要手动指定或以不同的方式获取。
一种可能是通过 MSBuild 将此信息传递给 PostSharp。例如,您可以将其添加到您的 csproj:
<PostSharpProperties>$(PostSharpProperties);ProjectType=Console</PostSharpProperties>
在编译时,你可以这样读取属性 ProjectType
:
PostSharpEnvironment.CurrentProject.EvaluateExpression("{$ProjectType}")
文档:
这是将此信息传递给 PostSharp 的方法。另一个问题是如果您不想手动将其硬编码到项目文件中,如何获取此信息。