J'ai un projet hérité qui utilise un OCX. J'ai dû enregistrer ledit OCX sur mon système en utilisant regsvr32.Compilez un C# WinForm qui dépend d'un ActiveX sans l'enregistrer
Maintenant, je veux que Jenkins compile le projet. Malheureusement, dans le serveur Jenkins, il n'y a pas d'OCX et je ne veux pas l'enregistrer.
Existe-t-il un moyen de distribuer l'OCX afin que le projet puisse compiler sur Jenkins? J'ai lu sur les composants sans inscription, mais il semble cibler les requeriments d'exécution, et mes problèmes sont à la compilation.
Vous pouvez probablement générer l'assembly d'interopérabilité principal à l'aide de [tlbimp.exe] (https://docs.microsoft.com/en-us/dotnet/framework/interop/how-to-generate-primary-interop-assemblies-using -tlbimp-exe) et mettre à jour les références pour utiliser l'assembly. Jetez un oeil à [ce message] (https://stackoverflow.com/q/10700607/3110834) ou [celui-ci] (https://stackoverflow.com/q/7498258/3110834). –
Jenkins me frappe parfois comme un virus publié par la communauté Java, visant à rendre la vie d'un programmeur C# aussi difficile que possible. Vous devez exécuter Aximp.exe pour obtenir à la fois la bibliothèque d'interopérabilité et l'encapsuleur AxHost que votre formulaire utilise. Vérifiez les deux DLL dans le contrôle de la source. Supprimez les deux références de votre projet et ajoutez-les à nouveau, en utilisant maintenant les fichiers. Revérifiez en vérifiant que le fichier .csproj ne contient plus les deux éléments 'COMReference'. Vous feriez mieux de vérifier l'installateur ou ocx dans le contrôle de la source ainsi que de minimiser la misère versioning cela provoque. –