Visual Studio çözümümde dört proje var (.NET 3.5'i hedefleyen herkes) - sorunum için sadece bu ikisi önemlidir:
- MyBaseProject <- bu sınıf kütüphanesi üçüncü taraf DLL dosyasına başvuruyor (elmah.dll)
- MyWebProject1 <- bu web uygulaması projesi MyBaseProject için bir referans var
Ben elmah.dll başvuru eklendi MyBaseProject tıklayarak Görsel stüdyoda 2008'de "başvuru ekleyin ..." → "Gözat" sekmesi → "elmah.dll" seçerek.
Elmah Referansının Özellikleri aşağıdaki gibidir:
- Takma adlar - global
- Yerel kopyala - doğru
- Kültür -
- Açıklama - ASP.NET için Hata Günlüğü Modülleri ve İşleyicileri (ELMAH)
- Dosya Türü - Montaj
- Yol - D: \ webs \ otherfolder \ _myPath \ __ tools \ elmah \ Elmah.dll
- Çözüldü - Doğru
- Çalışma zamanı sürümü - v2.0.50727
- Belirtilen sürüm - yanlış
- Kesin Ad - yanlış
- Sürüm - 1.0.11211.0
In MyWebProject1 I tarafından Proje MyBaseProject başvurusunu ekledi: "MyBaseProject" seçerek → "Projeler" sekmesi → "referansı ... Ekle". Bu başvurunun özellikleri, aşağıdaki üyeler dışında aynıdır:
- Açıklama -
- Yol - D: \ webs \ CMS \ MyBaseProject \ bin \ Debug \ MyBaseProject.dll
- Sürüm - 1.0.0.0
Visual Studio'da yapıyı çalıştırırsam elmah.dll dosyası MyBaseProject.dll ile birlikte MyWebProject1'in bin dizinine kopyalanır !
Ancak , çözüm için MSBuild'i temizleyip çalıştırırsam (D: \ webs \ CMS> C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe / t: ReBuild / p: Configuration = MyProject.sln hatalarını ayıkla ) elmah.dll MyWebProject1 bin dizininde eksik - her ne kadar yapının kendisi hiçbir uyarı veya hata içermiyor!
Zaten MyBaseProject .csproj "true" ( "Visual Studio'da " kopya yerel " için bir takma ad olmalıdır) değeri ile özel öğe içerdiğinden emin oldum :
<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>
(Özel etiket varsayılan olarak .csproj'un xml dosyasında görünmüyordu, ancak Visual Studio "yerel kopyala" doğru dedi. "Yerel kopyala" yı yanlış - kaydedilmiş - olarak değiştirdim ve tekrar doğru değerine ayarladım - kaydet!)
MSBuild ile ilgili sorun nedir? (Elmah.dll) referansının MyWebProject1'in bin kutusuna kopyalanmasını nasıl sağlayabilirim?
Her projenin postbuild komutuna bir postbuild kopya eylemi eklemek istemiyorum! (MyBaseProject'e bağlı birçok projem olacağını hayal edin!)