visual-studio-2010 - fuente - personalizar visual studio code
Error al inicializar la tarea DownloadNuGet: tarea no registrada DownloadNuGet (2)
Estoy intentando compilar mediante la aplicación C # usando Mono en Ubuntu. Estoy tratando de evitar la necesidad de incluir nuget.exe
en mi repositorio de git y he seguido la respuesta aceptada en esta pregunta
Esto funciona si uso Visual Studio 2010. Cuando construyo la aplicación, nuget.exe se descarga como se esperaba.
Sin embargo, cuando intento usar mono y xbuild, recibo el siguiente error.
Target Build:
Project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj" (default target(s)):
Target CheckPrerequisites:
Project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets" (_DownloadNuGet target(s)):
Target _DownloadNuGet:
: error : Error initializing task DownloadNuGet: Not registered task DownloadNuGet.
Task "DownloadNuGet" execution -- FAILED
Done building target "_DownloadNuGet" in project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets".-- FAILED
Done building project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets".-- FAILED
Task "MsBuild" execution -- FAILED
Done building target "CheckPrerequisites" in project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj".-- FAILED
Done building project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj".-- FAILED
Task "MSBuild" execution -- FAILED
Done building target "Build" in project "/home/builduser/SpecialBuildProj/SpecialBuildProj.sln".-- FAILED
Done building project "/home/builduser/SpecialBuildProj/SpecialBuildProj.sln".-- FAILED
Lo único que he cambiado es configurar DownloadNuGetExe
= true
en nuget.targets
, para que la línea se vea así:
<DownloadNuGetExe Condition=" ''$(DownloadNuGetExe)'' == '''' ">true</DownloadNuGetExe>
Mi pregunta: ¿cómo puedo configurarlo para que el comportamiento que usa mono / xbuild sea el mismo que cuando se usa Visual Studio (es decir, ese nuget se descargue automáticamente)?
Editar Esta es la línea UsingTask
que aparece en el archivo NuGet.targets
.
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)/Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Core" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Net" />
<Using Namespace="Microsoft.Build.Framework" />
<Using Namespace="Microsoft.Build.Utilities" />
<Code Type="Fragment" Language="cs">
<![CDATA[
try {
OutputFilename = Path.GetFullPath(OutputFilename);
Log.LogMessage("Downloading latest version of NuGet.exe...");
WebClient webClient = new WebClient();
webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);
return true;
}
catch (Exception ex) {
Log.LogErrorFromException(ex);
return false;
}
]]>
</Code>
</Task>
</UsingTask>
Crea una secuencia de comandos para descargarlo. P.ej
wget http://nuget.org/nuget.exe
cp nuget.exe ./.nuget/NuGet.exe
chmod a+x ./.nuget/NuGet.exe
Esto mantiene su NuGet.exe actualizado. Fuente
Esto sigue siendo un problema hoy en día con Xamarin Studio for Business y MacOS. Me encontré con este error al intentar construir el SDK de Facebook. Tuve que eliminar las referencias de destino NuGet en el archivo del proyecto para hacer la construcción del proyecto. Xamarin Studio tiene incorporada la actualización NuGet, así que pude descargar los paquetes manualmente.