j'ai eu un coup d'oeil sur beaucoup de questions similaires sur ce côté, mais aucun d'eux n'a répondu à la question à mon problème. Toute la journée j'ai essayé de résoudre ce problème en vue de trouver une solution (via google etc.):
J'ai 4 projets dans ma VS solution (tout le monde de ciblage .net 3.5) - pour mon problème de seulement ces deux sont importants:
- MyBaseProject <- cette bibliothèque de classe fait référence à une 3ème partie de la dll (elmah.dll)
- MyWebProject1 <- ce projet d'application web a une référence à MyBaseProject
J'ai ajouté de l'elmah.dll référence à MyBaseProject dans Visual studio 2008 en cliquant sur "Ajouter une référence..." - > onglet "Parcourir" - > sélection de la "elmah.dll".
Les Propriétés de la Elmah de Référence sont comme suit:
- Alias - global
- Copie locale - vrai
- Culture -
- Description de Modules d'enregistrement des Erreurs et des Gestionnaires (en apparence) pour ASP.NET
- Type De Fichier - Assemblée
- Le Chemin D'Accès D:\webs\otherfolder\_myPath\__tools\elmah\Elmah.dll
- Résolu - Vrai
- D'exécution de la version v2.0.50727
- Version - faux
- Nom fort - faux
- Version - 1.0.11211.0
Dans MyWebProject1 j'ai ajouté la référence au Projet MyBaseProject par: "Ajouter une référence..." - > onglet "Projets" - > sélection de la "MyBaseProject". Les Propriétés de cette référence sont les mêmes, sauf les membres suivants:
- Description -
- Le Chemin D'Accès D:\webs\CMS\MyBaseProject\bin\Debug\MyBaseProject.dll
- La Version 1.0.0.0
Si je lance le construire dans visual studio l'elmah.dll est copié sur mon MyWebProject1 bin du répertoire, ainsi que de MyBaseProject.dll!
Cependant si j'ai nettoyer et exécuter msbuild pour la solution (via D:\webs\CMS>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /t:Reconstruire /p:Configuration=Debug MyProject.sln) l' elmah.dll est manquant dans MyWebProject1 répertoire bin - bien que le construire lui-même ne contient pas d'erreurs ou d'avertissement!
Je l'ai déjà fait en sorte que l' .csproj de MyBaseProject contient le privé élément avec la valeur "true" (qui devrait être un alias de "copie locale" dans VS):
<Reference Include="Elmah, Version=1.0.11211.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\mypath\__tools\elmah\Elmah.dll</HintPath>
**<Private>true</Private>**
</Reference>
(Le privé balise ne figure pas dans la .csproj xml par défaut, bien que VS dit "copie locale" vrai. Je suis passé de "copie locale" faux - sauvé - et la définir à vrai nouveau - sauver!!!)
Quel est le problème avec MSBUILD? Comment faire pour obtenir l' (elmah.dll référence copié à MyWebProject1 bin?
Je ne veux PAS ajouter un postbuild copie d'action à tous les projets postbuild commande! (Imaginez que j'aurais beaucoup de projets dépendent de MyBaseProject!)