L'attività codificata può essere inserita direttamente nel file di progetto da MSBuild v4.0. Come questo:
<UsingTask
TaskName="SetEnvironmentVariableTask"
TaskFactory="CodeTaskFactory"
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v$(MSBuildToolsVersion).dll">
<ParameterGroup>
<Name ParameterType="System.String" Required="true" />
<Value ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Using Namespace="System" />
<Code Type="Fragment" Language="cs">
<![CDATA[
Environment.SetEnvironmentVariable(Name, Value);
]]>
</Code>
</Task>
</UsingTask>
Si noti che in MSBuild 14+, il riferimento AssemblyFile dovrebbe essere solo:
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll"
Il SetEnvironmentVariableTask
può essere poi utilizzato dal target:
<Target Name="SampleTarget" BeforeTargets="Build">
<SetEnvironmentVariableTask Name="TEST_ENV_VAR" Value="$(MSBuildProjectName)" />
</Target>
che è molto più pratico che creare un file .DLL separato per le attività di MSBuild di piccole dimensioni.
Grazie per la risposta! –
Si prega di includere un esempio di codice, i collegamenti non sono attendibili – Rbjz