我正在编写一个支持插件的项目.由于许多插件相对较小(只有一个源文件/类),我希望将它们全部放在visual studio中的一个项目中,但为了成功完成这个,我需要将每个源文件/类编译到其中自己的dll文件,这可能使用visual studio吗?
如果使用visual studio无法做到这一点,是否可以使用其他构建系统,同时仍然使用visual studio进行编码和调试?
目前我已经将插件项目输出类型设置为console,并编写了一个main()方法,该方法将源目录中的所有.cs文件编译为dll并将其复制到正确的目录中.然后我将该控制台应用程序设置为插件项目的后期构建事件.它有效,但它似乎是一个非常丑陋的黑客.
使用visual studio 2010.
我正在实现一个MSBuild框架来驱动构建和部署作为层次结构组织的许多项目.
<Target Name="_CoreBuild">
<MSBuild Projects="@(Project)" Targets="Build" Properties="Configuration=$(Configuration)">
<Output TaskParameter="TargetOutputs" ItemName="CompiledAssemblies" />
</MSBuild>
</Target>
Run Code Online (Sandbox Code Playgroud)
为了实现正确的Clean/Clobber逻辑,我想检索在使用当前选项执行构建时将编译的文件列表.
<Target Name="_CoreClobber" DependsOnTargets="_CoreClean">
<!-- How to retrieve @(CompiledAssemblies) as if we were
building @(Project) and retrieving the @(TargetOutputs) item group.
-->
</Target>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了各种方法,包括创建自定义任务,在其中我构建了一个自定义项目文件,用于导入我想从中检索属性/项目的原始项目.但这并没有给我可靠的价值.
有没有办法检索MSBuild项目的TargetOutputs项目组而不实际执行构建?