Comment exécuter regasm.exe de la ligne de commande autre que l'invite de commande Visual Studio?
Je veux lancer regasm.exe De cmd. qui est disponible en c:windowsMicrosoft.netframework2.057
J'aime ce c: regasm.exe
Il donne regasm n'est pas reconnu comme commande interne ou externe .
J'ai donc compris que je devais définir le chemin pour regasm.exe dans la variable d'environnement.
Pour quelle variable dois-je définir le chemin pour exécuter regasm comme décrit ci-dessus?
10 réponses
Dans l'invite de commande:
SET PATH = "%PATH%;%SystemRoot%\Microsoft.NET\Framework\v2.0.50727"
Comme Cheeso dit:
Vous n'avez pas besoin du répertoire sur votre chemin. Vous pourriez le mettre sur votre chemin, mais vous n'avez pas BESOIN de le faire. Si vous appelez regasm rarement, ou l'appelez à partir d'un fichier batch, vous trouverez peut-être plus simple d'appeler regasm via le chemin d'accès complet sur l'exe, par exemple:
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\regasm.exe Mon Assemblage.dll
Vous n'avez pas besoin d' le répertoire sur votre chemin. Vous pourriez le mettre sur votre chemin, mais vous n'avez pas BESOIN de le faire.
Si vous appelez regasm rarement, ou l'appelez à partir d'un fichier batch, vous trouverez peut-être plus simple d'appeler regasm via le chemin d'accès complet sur l'exe, par exemple:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe MyAssembly.dll
Si vous avez créé la DLL à l'aide de.Net 4.5 , copiez et collez cette commande à l'invite de commandes.
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
Je l'utilise comme événement post-build dans Visual Studio:
call "%VS90COMNTOOLS%vsvars32.bat"
regasm $(TargetPath) /tlb
Selon la version de Visual Studio, utilisez plutôt ces variables d'environnement:
- Visual Studio 2008:
VS90COMNTOOLS
- Visual Studio 2010:
VS100COMNTOOLS
- Visual Studio 2012:
VS110COMNTOOLS
- Visual Studio 2013:
VS120COMNTOOLS
- Visual Studio 2015:
VS140COMNTOOLS
- Visual Studio 2017:
VS150COMNTOOLS
J'utilise ce qui suit dans un fichier batch:
path = %path%;C:\Windows\Microsoft.NET\Framework\v2.0.50727
regasm httpHelper\bin\Debug\httpHelper.dll /tlb:.\httpHelper.tlb /codebase
pause
Je n'aime vraiment pas le codage dur des chemins pour arriver à regasm, lorsque vous installez un nouveau. net ou exécutez sur une machine avec une version différente, vous devez vous assurer de trouver une version de regasm. Voici une solution pour trouver le régasme.exe dule plus courant. net installé regasm.
Dans un fichier bat:
for /f %%a in ('dir %windir%\Microsoft.Net\Framework\regasm.exe /s /b') do set currentRegasm="%%a"
%currentRegasm% "full\path\to\your.dll" /options
En dehors d'un fichier bat (c'est-à-dire invite de commande), utilisez simplement %a
au lieu de %%a
Pour le RegAsm 64 bits.exe vous aurez besoin de le trouver quelque part comme ceci:
c:\Windows\Microsoft.NET\Framework64\version_number_stuff\regasm.exe
En faisant glisser et déposer la dll sur 'regasm', vous pouvez l'enregistrer. Vous pouvez ouvrir deux fenêtres "Explorateur de fenêtres". L'un contiendra la dll que vous souhaitez enregistrer. La 2ème fenêtre sera l'emplacement de la "regasm' application. Faites défiler vers le bas dans les deux fenêtres afin que vous ayez une vue à la fois de la dll et de 'regasm'. Cela aide à réduire la taille des deux fenêtres afin qu'elles soient côte à côte. Assurez-vous de faire glisser la dll sur le "regasm" qui est étiqueté "application". Il y a plusieurs fichiers "regasm" mais vous voulez seulement l'application.
Exécutez seulement 1 des {[4 ci-dessous]} Une fois qu'une commande fonctionne, ignorez le reste / ci-dessous:
Normal:
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe myTest.dll /tlb:myTest.tlb /codebase
Seulement si vous rencontrez des problèmes, utilisez l'ancienne version 'v2.0. 50727':
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll /tlb:myTest.tlb
%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe myTest.dll /tlb:myTest.tlb
Seulement si vous avez construit myTest.dll pour 64 bits uniquement, utilisez le chemin 'Framework64':
%SystemRoot%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe myTest.dll
%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe myTest.dll
Remarque: les DLL construites 64 bits ne fonctionneront pas sur une plate-forme 32 bits.
Toutes les options:
Voir https://docs.microsoft.com/en-us/dotnet/framework/tools/regasm-exe-assembly-registration-tool