在我的CSProj文件中包含以下代码:
<UsingTask TaskName="HelloWorld" TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<Task>
<!--Microsoft.Build.dll-->
<Using Namespace="Microsoft.Build.Evaluation" />
<Code Type="Fragment" Language="cs">
<![CDATA[
var p = new Project("$(MSBuildProjectFullPath)");
]]>
</Code>
</Task>
</UsingTask>
在我的AfterBuild中我称之为:
<Target Name="AfterBuild">
<HelloWorld />
</Target>
我得到的错误是:
错误CS0246:类型或命名空间名称&#39;项目&#39;无法找到 (您是否缺少using指令或程序集引用?)
参考var p = new 项目
答案 0 :(得分:1)
在任务中包含Microsoft.Build引用可以解决该问题。 (首先需要将Microsoft.Build.dll引用添加到您的项目中)
<Task>
<Reference Include="Microsoft.Build"/>
<Using Namespace="Microsoft.Build.Evaluation" />
<Code Type="Fragment" Language="cs">
<![CDATA[
var p = new Project("$(MSBuildProjectFullPath)");
]]>
</Code>
</Task>