SORU
19 AĞUSTOS 2012, Pazar


MSBuild dağıtmak sonra yükseltme başarısız .NET 4.5

Biz son zamanlarda bizim VS 2010 yükseltti .4 Uygulama VS 2012 için NET ve .NET 4.5. Test server üzerinde uygulama dağıtmak için inşa bir senaryomuz var. İki kutu - 8 VS 2010 ve VS 2012 (yeni kurulan) ile Windows 7, Windows biridir.

Windows betik çalıştırılırken 8 kutu script iyi çalışıyor ve test server için uygulama dağıtır kurmak. Ancak uygulama dağıtırken Windows 7 kutusundan aşağıdaki hatayı alıyorum:

"C:\Achinth\Build\Work\build\qa1sb.proj" (DeployAll hedef) (1) ->"C:\Achinth\Build\Work\App\App.csproj" (; MsDeployPublish hedef ResolveReferences) (2) ->(MSDeployPublish hedef) ->C:\Program Dosyaları (x 86) MSBuild\Microsoft\\v10 Studio\.0\Web\Microsoft.Web.Yayıncılık.hedefler(3847,5): hata : dağıtım Web görev başarısız oldu.((8/19/2012 6:23:41) Bir hata, istek, uzak bilgisayarda işlendiğinde. oluştu) [C:\Achinth\Build\Work\App\App.csproj]C:\Program Dosyaları (x 86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Yayıncılık.hedefler(3847,5): hata : \r [C:\Achinth\Build\Work\App\App.csproj]C:\Program Dosyaları (x 86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Yayıncılık.hedefler(3847,5): hata : (8/19/2012 6:23:41) Bir hata isteği uzak bilgisayar.\işlenmiş oluştu r [C:\Achinth\Build\Work\App\App.csproj]C:\Program Dosyaları (x 86)\MSBuild\Microsoft\\v10.Studio 0\Web\Microsoft.Web.Yayıncılık.hedefler(3847,5): hata : kullanmak istediğiniz uygulama havuzunu 'managedRuntimeVersion' özelliği 'v4.'. 0 Bu uygulama 'v4 gerektirir.'. 5 [C:\Achinth\Build\Work\App\App.csproj]

MSBuild gibi görünüyor hataya bakıyor VS VS yerine 2010 hedefleri, hataya neden olan 2012, kullanıyor. Windows 8 kutu VS 2010 olmadığı için doğru VS 2012 hedefleri kullanıyor.

Bazı doğru sürümünü seçmek için MSBuild yapmak için nasıl işaretçiler temin edebilir misiniz?

CEVAP
19 AĞUSTOS 2012, Pazar


Bu durumda MSBuild özelliği VisualStudioVersion belirtmek gerekir=11.0. Ben sadece http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx, aşağıda size kolaylık sağlamak için de kopyaladım. bu konuda bir yazı yazdı.

Visual Studio 2012 yılının en çok istenen özelliklerinden biri de VS 2012 yılında projeleri açmak için yeteneği gibi VS 2010 (VS 2010 SP1 gerektirir). Durumda bu özelliği uygulamak yaptık duymadın. Bunu başardık ve bu sizi nasıl etkiler merak ediyor olabilirsiniz.

Eğer açarsanız ./csproj.Web Projesi VS2010 içinde oluşturulan vbproj aşağıdaki import ifadesini göreceksiniz.

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\
                  v10.0\WebApplications\Microsoft.WebApplication.targets" />

VS 2012 yılında bu proje açtığınızda birkaç değişiklik proje dosyanıza 2010 SP 1 ve VS de VS 2012 açılabilir sağlamak için yapılır. Değişiklikler ilk VS 2012 yüklendiğinde, projede yapılan biri şu alma deyimi yerine eklemektir.

<PropertyGroup>
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">
    $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Kodlanmış 10.0 kaldırdık ve bunun yerine özellik VisualStudioVersion kullanılır. Visual Studio 2012 bu değer binadaki her zaman 11.0, ama VS 2010 için ne zaman öyle bir şey yok. Bu 10.0 yukarıda temerrüde neden olur. Komut satırından oluşturma bu özellik açıkça ayarlamak için gerektirir bazı senaryolar vardır. Çıkmadan önce bana bu özelliği ayarlamak nasıl olur (bu sırayla) açıklamama izin verin

  1. Eğer VisualStudioVersion bir ortamda küresel MSBuild özelliği/değişkeni olarak tanımlanmış ise, o kullanılır.
    • Bu VS VS ve geliştirici komut istemi, bu değeri ayarlayın
  2. Bu dosya biçimi sürümü dayanmaktadır .sln dosyası (araç sln biçim -1 dosyası kullanılır)
    • Bu ifadeyi basitleştirmek için .sln dosya oluşturulmuş olan VS sürümü değerine VisualStudioVersion belirterek kuracağım .dosya sln.
  3. Varsayılan seçin
    • Eğer VS 2010 yüklü ise 10.0
    • En yüksek sürüm bilgisi alt kümesidir sürümü yüklü

Bir bina yaparken #2 için .sln VisualStudioVersion değeri Biçim Sürümü bulunan -1 olacak dosya .dosya sln. Burada dikkat edilmesi gereken önemli şey, eğer bir yapı .sln oluşturulmuş olan VisualStudioVersion değeri VS sürümü ile ilgili inşa edecek dosya .dosya sln. Eğer oluşturursanız .VS2012 dosya sın ve her zaman bu yapı .sln VisualStudioVersion değeri 11.0 olacak dosya. Eğer inşa edersen, çoğu durumda .sln iyi olduğunuz dosya.

Eğer bir bina ./csproj.vbproj dosya g/Ç geçiyor .dosya sın? Eğer komut satırı (geliştirici istemi) bir web projesi oluşturmak VisualStudioVersion değeri kullanılan 10.0 olacaktır. Yukarıda gösterdiğim özellikleri bir eserdir. Bu durumda bu MSBuild özelliği olarak geçmesi. Örneğin

msbuild.exe MyAwesomeWeb.csproj /p:VisualStudioVersion=11.0

Bu durumda özelliği açıkça geçiyorum. Bu her zaman başka bir mekanizma VisualStudioVersion değerini belirlemek için geçersiz kılar. Eğer inşa komut dosyası MSBuild görev kullanıyorsanız, özellik ya da Özellikleri öznitelik olarak belirtebilirsiniz veya AdditionalProperties bağlıyor. Özellikleri ve AdditionalProperties arasındaki fark önceki blog yazısı bakın.

Sen/yayıncılık oluştururken herhangi bir tuhaf davranış karşılaşma ve yanlış olduğunu fark ederseniz .hedef files bu özellik belirtmeniz gerekebilir o zaman ithal ediliyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • HouseholdHacker

    HouseholdHac

    6 Kasım 2007
  • PamtheBlamofficial

    PamtheBlamof

    31 Aralık 2010