• Jobs
  • About Us
  • Jobs
    • Home
    • Jobs
    • Courses and challenges
  • Businesses
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

403
Views
¿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 3 years ago · Santiago Trujillo
1 answers
Answer question

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Show me some job opportunities
There's an error!