Visual Studio 2013 içinde değil, komut satırı aracılığıyla bir proje oluşturuyorum. Projemi Visual Studio 2012'den 2013'e yükselttiğimi unutmayın. Proje IDE içinde sorunsuz bir şekilde oluşturuluyor. Ayrıca, önce VS2012'yi tamamen kaldırdım, yeniden başlattım ve VS2013'ü yükledim. Sahip olduğum tek Visual Studio sürümü 2013 Ultimate.
ValidateProjects:
39>path_to_project.csproj(245,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
39>Done Building Project "path_to_project.csproj" (Clean target(s)) -- FAILED.
İşte söz konusu iki satır:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
Orijinal ikinci satır v10.0 idi, ancak bunu manuel olarak v12.0 olarak değiştirdim.
$(VSToolsPath) gördüğüm kadarıyla v11.0 (VS2012) klasörüne kadar uzanıyor, ki belli ki artık orada değil. Yolun v12.0'a gitmesi gerekirdi.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\
Sistem ortam değişkenleri tablomda VSToolsPath belirtmeyi denedim, ancak harici derleme yardımcı programı hala v11.0 kullanıyor. Kayıt defterinde arama yapmayı denedim ama bir şey çıkmadı.
Ne yazık ki, kullanılan komut satırını tam olarak almanın kolay bir yolunu göremiyorum. Bir derleme aracı kullanıyorum.
Ne düşünüyorsunuz?
Ben de aynı sorunu yaşadım ve daha kolay bir çözüm buldum
Vs2012'nin csproj dosyasına aşağıdakileri eklemesinden kaynaklanmaktadır:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolspath>
</PropertyGroup>
Bu parçayı güvenle çıkarabilirsiniz ve çözümünüz oluşacaktır.
Sielu'nun belirttiği gibi .proj dosyasının başladığından emin olmalısınız ile
<Project ToolsVersion="12"
aksi takdirde bir sonraki açışınızda visual studio 2010 ile proje, kaldırılan düğümü tekrar ekleyecektir.
Aksi takdirde, webdeploy kullanmanız gerekiyorsa veya bir derleme sunucusu kullanıyorsanız, yukarıdaki çözüm işe yaramayacaktır, ancak derleme komut dosyanızda VisualStudioVersion
özelliğini belirtebilirsiniz:
msbuild myproject.csproj /p:VisualStudioVersion=12.0
veya yapı tanımınızı düzenleyin:
Bana bir link veren Kinook'tan az önce bir yanıt aldım:
Temel olarak, inşa etmeden önce aşağıdakileri aramam gerekiyor. Sanırım Visual Studio 2013 ilk önce ortamı otomatik olarak kaydetmiyor, ancak 2012 yaptı veya ben yaptım ve unuttum.
call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
Umarım bu yazı bir başkasına yardımcı olur.
Harici bir derleme programı kullanıyordum. Ants gibi bir şey düşünün, eğer ürünü doğru anladıysam, sadece ticari bir versiyon. Cevap için üreticiyle iletişime geçmem gerekti.
Görünüşe göre, projede DEVSTUDIO_NET_DIR adında global bir makro var. Orada .Net yolunu değiştirmem gerekti. Çeşitli visual studio sürümlerini "Actions" olarak listeliyorlar, bu da beni şaşırttı, ancak tüm yollar perde arkasındaki tek bir küresel değişkene geri dönüyor. Anladığım kadarıyla bir şeyleri kaçırmıyorsam, elimde olsa bunu ürüne karşı bir kusur olarak listelerdim. Oradaki yolu düzeltmek derleme sorununu çözdü.