tfs-build-Fehler, kann sich Nicht Montage "MyAssembly.dll" - Zugriff verweigert
Ich habe ein C# - web service-Projekt. Ich erstellt einen client, der schafft und schafft die Verbindung zu dem Dienst. Wir haben einen älteren PC-Produkt, dass in C++ geschrieben ist, und Sie müssen ein interface-Aufrufe an den service. Ich habe einige Anrufe auf dem client für diese und neue Objekte sind COM-sichtbar übergeben Sie die Daten um. Ich habe dann aktivieren Sie das Kontrollkästchen in der Projekt-Einstellungen, die sagt "für COM-interop Registrieren". Dies alles scheint zu erstellen und lokal arbeiten (ich starten Sie visual studio als admin). Aber wenn ich in meinem TFS-server der build schlägt fehl, die besagt: Nicht registriert-Montage "MyClient.dll" - Zugriff verweigert. Bitte stellen Sie sicher, dass Sie die Anwendung als administrator. Zugriff auf die registry-Schlüssel " HKEY_CLASSES_ROOT\MyClient.MyClass' wird verweigert.
Gibt es eine Möglichkeit, zu erhöhen mein token auf der build-Maschine oder auf eine andere Weise, diese zu lösen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie unter Wert mit MSBuild MSBuild-Argumente option in der Prozess-parameter der build-definition.
/p:RegisterForComInterop=false
Ich herausgefunden, wie dies funktioniert! Wenn man sich die XML-Datei in Ihr Projekt, Sie finden einen Knoten, der wie folgt aussieht:
Das problem ist hier natürlich die Linie, die sagt, das Projekt für com-interop registrieren. Ich sehe auch eine ähnliche definition für die release-Konfiguration. Ich kann lösen das Problem, indem Sie die Linie oder über die Benutzeroberfläche deaktivieren der box, aber ich habe andere Menschen auf das Projekt benötigen, um den code zu erhalten, und es wäre besser, wenn die version des Projekts in der Quellcodeverwaltung nur für Sie gearbeitet. die Antwort ist, deaktivieren Sie das register interop-box auf die Freigabe-definition, aber halten Sie es auf der debug-definition ein und ändern Sie anschließend die TFS build-definition, nur das zu bauen für die Freigabe. So, meine co-Arbeiter kann das com-Objekt und dem build-server nicht beschweren.
Ihre TFS build agent ist wahrscheinlich ein service-Konto ist das Konto, das muss die erhöhten Privilegien. Müssen Sie die service-Konto der Gruppe Administratoren auf dem server erstellen(s).
Jedoch Ihre TFS Admin vielleicht nicht wollen, das zu tun. Auch, wenn geben Sie das Konto extra-Privilegien ist das kein problem, Sie haben vielleicht ein Problem mit deinem build zu tun "Zeug", um die registry.
Du aufrufen können COM-Komponenten von c++, ohne sich zu registrieren Sie
Dieser Artikel auf die Registrierung Kostenlos COM geht in mehr detail