我有一个自定义的MSBuild任务,其中包括其他东西添加嵌入式资源解决方案中的其他项目。添加资源后,我想然后建立这些项目,但发现我无法在Visual Studio中使用它。MSBuild任务构建其他解决方案项目VS失败,但与MSBuild.exe命令行一起工作
为了测试,我完全剥离了自定义任务,并在Silverlight解决方案的Web项目中重新定义了一个简单的AfterBuild目标。目标使用MSBuild任务建立在溶液中的Silverlight应用程序项目,如下所示:
<Target Name="AfterBuild">
<PropertyGroup>
<LinkedProject>..\SilverlightApplication1\SilverlightApplication1.csproj</LinkedProject>
</PropertyGroup>
<MSBuild Condition="'$(LinkedProject)' != '' "
Projects="$(LinkedProject)"
Targets="Build"
Properties="CustomFlag=true" >
</MSBuild>
</Target>
奇怪的是,这在命令行中使用的MSBuild时完美的作品,但不可视工作Studio构建Web项目时。我认为这可能是某种Silverlight问题,并且它的任务是建立一个.NET类库项目,但结果是一样的 - 它在命令行上工作,但不在VS中。在VS中没有实际的错误 - 只是Csc任务不会编译程序集并且不会生成输出。
我需要做什么才能在Visual Studio中正常工作?
我一直在使用诊断的冗长,但它不告诉我为什么Csc任务不会产生输出。在调用构建目标时,我一直在使用自定义属性,在测试用例中,我将其称为“CustomFlag”,我认为这足以确保MSBuild任务即使已经构建也能构建项目。 CoreCompile目标被调用,即使是Csc任务,它也不会执行任何操作。另外,我在测试中的Web应用程序项目中使用AfterBuild目标,但是我的应用程序使用注入CoreBuild结尾的.targets文件。 –