After following the steps in this answer, when attempting to build a project through mono (Using msbuild), I get the following error:
(AfterCompile target) -> project.csproj(469,5): error MSB4062: The "TransformXml" task could not be loaded from the assembly /usr/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/Web/Microsoft.Web.Publishing.Tasks.dll. Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
It appears as if Microsoft.Web.Publishing.Tasks.dll
is unavailable.
The task is correctly declared with in the project file, or in the *.tasks files located in the "C:\Program Files (x86)\MSBuild\14.0\bin" directory. 1>Where is TransformXml is located?
xbuild is Mono’s implementation of msbuild and it allows projects that have an msbuild file to be compiled natively on Linux. xbuild has been part of the standard Mono distribution for some time now, but it is not 100% complete yet. xbuild supports C# and VB.NET projects out of the box.
The main problem with an XML transformation is that it happens on the “ web publish ” step only, and you can’t have it setup for the build (via Visual Studio IDE, that is).
If your project doesn’t have the transformation files yet (upgraded solution) or you added new build configurations, open your project in Visual Studio, right-click the existing Web.config file, and select Add config transform. This will create config files for existing solution configurations (e.g. web.Debug.config and web.Release.config ).
On linux via mono, this file doesn't exist. To solve this issue, follow these steps:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
With your updated nuget Microsoft.Web.Publishing.Tasks.dll
location (Update version name in MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3
as necessary):
<UsingTask TaskName="TransformXml" AssemblyFile="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\tools\VSToolsPath\Web\Microsoft.Web.Publishing.Tasks.dll" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With