2017-04-13 3 views
1

Ich habe ein Problem, leider habe ich keine Lösung gefunden, die beheben kann Mein Problem, andere Lösungen können gefunden werden, aber niemand funktioniert für mich.TFS - Fehler: "Der Typ oder Namespace-Name 'blabla' existiert nicht im Namespace 'blublu' (fehlt eine Assembly-Referenz?)

Wenn ich lokal meine Lösung, alles ist perfekt, aber wenn ich die Build-Definition mit dieser Lösung starten habe ich einige Probleme. Erstens einige erros wie:

Console.cs (5): The type or namespace name 'Core' does not exist in the namespace 'Toto' (are you missing an assembly reference?) 
Enti\Extensions.cs (602): The type or namespace name 'Attribute' could not be found (are you missing a using directive or an assembly reference?) 

und andere mit dem gleichen Fehler wie die letzten

.

mir helfen ich diese Warnungen haben auch, hierunter, einer von ihnen (andere sind ähnlich):

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605): Could not resolve this reference. Could not locate the assembly "Comarch.B2.Core". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. 

Was ich versucht:

  1. Die Referenzen wie „Core“ zum Beispiel sind gut in das Projekt aufgenommen Referenzen;
  2. entnommen und Warnhinweise
  3. Überprüft die Version Framework-dotNET Der Pfad lenghts (http://www.gitshah.com/2011/06/visual-studio-2010-fixing-referenced.html)

Zum Beispiel der erste Fehler oben:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using .Core.Interfaces.Dictionaries; 

namespace Toto.Presentation.Extensions.Interfaces 
{ 
    public class Console 
    { 
     ... 
    } 
} 

Dann ein Stück meiner LOG:

> C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(1605,5): 
> warning MSB3245: Could not resolve this reference. Could not locate 
> the assembly "Common". Check to make sure the assembly exists on disk. 
> If this reference is required by your code, you may get compilation 
> errors. 
> [c:\bw\41\src\F\TFS\te\Pro\Extensions\Toto.Presentation.Extensions.Interfaces\Toto.Presentation.Extensions.Interfaces.csproj] 
>    For SearchPath "{HintPathFromItem}". 
>    Considered "..\..\..\..\..\..\..\..\..\..\Toto.Common.dll", but it didn't exist. 
>    For SearchPath "{TargetFrameworkDirectory}". 
>    Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Toto.Common.winmd", 
> but it didn't exist. 
>    Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Toto.Common.dll", 
> but it didn't exist. 
>    Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Toto.Common.exe", 
> but it didn't exist. 

Danke v sehr viel, um mir zu helfen, habe ich vor 2 Tagen gezögert.

+0

Haben Sie die Assembly "Core" in TFS eingecheckt und diese beim Erstellen auf den Build Agent-Server heruntergeladen? –

Antwort

2

Um diesen Fehler zu beheben, müssen Sie sicherstellen, dass diese Assembly im richtigen Pfad auf Ihrem Build Agent vorhanden ist.

In der .csproj-Datei Ihres Projekts wird definiert, auf welche Elemente Sie verweisen und wo sie sich befinden.

<Reference Include="xxx"> 
     <HintPath>..\..\xxx\xxx.dll</HintPath> 
</Reference> 

Und in Ihrem Projekt scheint die HintPath "..\..\..\..\..\..\..\..\..\..\Toto.Common.dll" zu sein. Sie könnten auf Ihrem Build-Agent-Server überprüfen, wird diese DLL heruntergeladen. Wenn nicht, überprüfen Sie bitte die Repository-Zuordnungen Ihrer Build-Definition.

Die "..\" bedeutet Rückkehr in den höheren Zustand. Es hat 10 "..\", also müssen Sie auf 10 Ebenen von wo die .csproj-Dateien suchen.

Ich schlage vor, dass Sie Ihre Toto.Common.dll neu positionieren. Sie könnten Ihr Projekt/Ihre Lösung und die referenzierte DLL in einem einzigen Ordner ablegen und in Ihrem Projekt erneut verwenden. Ordnen Sie diesen Ordner dann in den Repository-Zuordnungen zu. Eine weitere Bedingung ist, dass Sie diese DLL nach einem anderen Projekt erstellen möchten. Sie müssen die beiden Projekte zuordnen und beide in Ihrer Definition erstellen.

+0

Großartig !! Perfekt, danke! – FrankVDB

1

Die Castle.Core Referenz, ist das von Castle Windsor, die Sie vielleicht über Nuget bekommen haben? Dann muss Ihr Build wahrscheinlich vor der Kompilierung eine "Nuget-Wiederherstellung" durchführen.

Haben Sie versucht, den Code aus der Quellcodeverwaltung in einen leeren Ordner zu kopieren und dort zu kompilieren?

+0

Ja Ich aktiviere die Nuget-Wiederherstellung vor der Kompilierung, ich habe eine Warnung weniger. Aber andere Warnung habe ich meine erste Nachricht bearbeitet. Ich überprüfte den Code auch. – FrankVDB

+0

Gilt diese Nuget-Wiederherstellung für VS2017? – DanielV

+0

Ich würde immer eine Nuget-Wiederherstellung vor dem Bau haben. In VS2017 ist es standardmäßig aktiviert, Sie müssen es also nicht manuell durchführen. – RasmusW

Verwandte Themen