Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

465
Visualizações
¿Cómo agregar una referencia de ensamblaje faltante para xbuild? (Mono/Linux)

Tenemos un proyecto de C# que se compila perfectamente en Visual Studio en Windows y en TeamCity.

Intento construirlo así en Linux, usando xbuild de Mono:

 MONO_IOMAP=case xbuild BuildAll.sln

La compilación falla, con 2 advertencias y 7 errores, todos ellos sobre XmlDiffPatch .

Las advertencias:

 /usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'XmlDiffPatch, Version=1.0.8.28, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' not resolved

Los errores:

 ***REDACTED***: error CS0234: The type or namespace name `XmlDiffPatch' does not exist in the namespace `Microsoft'. Are you missing an assembly reference?

Hay un par de archivos .cs con

 using Microsoft.XmlDiffPatch;

Tengo esto en un archivo .csproj :

 <ItemGroup> <Reference Include="nunit.framework, Version=2.6.2.12296, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> <SpecificVersion>False</SpecificVersion> </Reference> <Reference Include="System" /> <Reference Include="System.Drawing" /> <Reference Include="System.Security" /> <Reference Include="System.Xml" /> <Reference Include="XmlDiffPatch, Version=1.0.8.28, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </ItemGroup> ... <ItemGroup> <None Include="lib\XmlDiffPatch.dll" /> </ItemGroup>

He confirmado que existe un archivo lib\XmlDiffPatch.dll .

El proyecto tiene varios módulos (lo siento, no conozco el lenguaje .NET exacto, vengo de un entorno Java/Maven) y las advertencias/errores solo ocurren en los módulos que tienen un directorio lib .

¿Qué debo hacer para que este proyecto se construya en Linux con Mono? Mi mejor suposición es que a los archivos .csproj les falta algo , por lo que no pueden encontrar el .dll requerido.

Miré preguntas similares, pero esencialmente dicen "solo agregue una referencia" sin explicar cómo hacerlo en Linux. No tengo un "explorador de soluciones" ni nada.

Debo agregar que no estoy usando monodevelop, todo esto es consola y edito archivos con vi .

También me gustaría agregar que cualquier cambio en .csproj u otros archivos debería seguir siendo compatible con Windows.

EDITAR

No sé si es útil, pero noté que la versión requerida de XmlDiffPatch también está disponible en NuGet . Nuestro proyecto C# actualmente no usa NuGet en absoluto, pero ciertamente estoy abierto a sugerencias, siempre y cuando solo requiera editar archivos en Linux y funcionará automáticamente en Visual Studio después de que los desarrolladores de Windows obtengan mi compromiso.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede agregar un HintPath al .csproj para que cuando MSBuild/xbuild pase las referencias de ensamblado a csc/mcs se encuentre:

 <Reference Include="XmlDiffPatch, Version=1.0.8.28, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" > <HintPath>lib\XmlDiffPatch.dll</HintPath> </Reference>

Nota: edite la ruta para que se encuentre en relación con el lugar donde se encuentra el .csproj (suponiendo que el directorio lib de su pregunta).

https://msdn.microsoft.com/en-us/library/bb629388.aspx

Sugerencia | Cadena opcional. | Ruta relativa o absoluta del ensamblado.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda