J'essaie d'écrire un script powershell pour recharger un projet (les fichiers et les dossiers ont été ajoutés via une application C# (essayé de le faire via C# mais échoué, voir here). Mon objectif final est d'être en mesure d'appeler l'application C#, puis recharger le projet (décharger et recharger) pour actualiser le projet et d'éviter que l'utilisateur ait à dire manuellement recharger le projet.
$project = Get-Project
write-host("starting NHMigrate on project: " + $project.Name)
$project.FullName
$project.UniqueName
$shortpath = $dte.Solution.Properties.Item("Name").Value + "\" + $project.Name
$dte.Windows.Item("{3AE79031-E1BC-11D0-8F78-00A0C9110057}").Activate()
$dte.ActiveWindow.Object
$dte.ActiveWindow.Object.GetItem($project.UniqueName)
le problème Je vais avoir tout ce que je google dit utiliser GetItem pour sélectionner ce projet pour pouvoir appeler execute_command, mais je reçois l'exception
Exception calling "GetItem" with "1" argument(s): "Value does not fall within the expected range."
At E:\Work\nhibernateRepo\NHibernateRepository\NHMigrate\test.ps1:12 char:1
+ $dte.ActiveWindow.Object.GetItem($project.UniqueName)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentException
Je ne trouve rien pour expliquer pourquoi cela ne fonctionne pas. Tout le monde semble appeler l'objet avec un seul paramètre. Je ne trouve pas non plus les documents qui couvrent cette méthode.
EDIT
C'est une note sur ce que je voulais atteindre. Utiliser PowerShell pour rafraîchir le projet fonctionne mais il ne s'arrête pas, ou supprimer la boîte de dialogue "Modification de fichier détectée" qui était finalement ce que je voulais faire.