Adakah yang melihat kesalahan ini dan tahu cara memperbaikinya?
Tugas "TransformXml" tidak dapat dimuat dari rakitan C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll.
Tidak dapat memuat file atau file assembly: /// C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll 'atau salah satu dependensinya. Sistem tidak dapat menemukan berkas yang dicari.
Konfirmasikan bahwa pernyataan tersebut benar, bahwa rakitan dan semua dependensinya tersedia, dan bahwa tugas tersebut berisi kelas publik yang mengimplementasikan Microsoft.Build.Framework.ITask.
Saya membaca di tempat lain bahwa masalahnya adalah ketika Anda tidak menginstal SQL Server. Tetapi saya memiliki SQL Express 2012 x64 yang diinstal dengan SP1. Saya juga menjalankan VS 2013 Professional.
Saya telah menjalankan solusi yang sama persis di VS 2012 express tanpa masalah.
sumber
Jawaban:
Jawaban yang diberikan oleh Dai Bok dan emalamisura berfungsi dengan baik selama Anda menggunakan Visual Studio 2012. Untuk VS 2013 ini juga gagal. Untuk membuat ini berfungsi dengan semua versi Visual Studio Anda harus:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
Itu akan mengatur versi Visual Studio yang benar secara dinamis dan benar.
sumber
$(VisualStudioVersion)
mengembalikan versi sebelumnya :(Agar milik saya berfungsi, saya hanya menyalin
v10.0
folder saya dan menamainya kembaliv11.0
, dan semuanya tampaknya berfungsi dengan baik sejak saat itu. Itulah perbaikan cepat untuk saat ini.Karena ini mungkin bukan solusi terbaik, dan meskipun berhasil, saya akan mencoba menginstal Microsoft Windows SDK untuk Windows 7 dan .NET Framework 4 Windows SDK untuk Windows 7 dan .NET Framework 4, tetapi butuh waktu lama untuk unduh.
sumber
Saya telah memerangi masalah ini di server build kami selama beberapa hari, jadi saya pikir saya akan mendokumentasikan resolusi yang saya dapatkan. Pertama, server build saya memasang ekstensi penerbitan web . Saya dapat menggunakan tugas TransformXml sesuka hati saya di dalam proyek aplikasi web.
Untuk menggunakannya di luar proyek aplikasi web, saya mencoba menambahkan elemen UsingTask ke proyek saya dan mengarahkannya ke tempat yang tepat menggunakan properti ms build (seperti yang ditunjukkan Benjamin). Namun, mereka tidak ada di server build saya (mereka yang memiliki akses mudah ke sistem file server build mereka mungkin dapat melewati ini dan menginstal paket yang relevan ke Visual Studio). Saya bahkan melangkah lebih jauh ke versi hard code visual studio, tetapi selalu menjatuhkan kesalahan itu pada saya.
Saya akhirnya menyerah, menarik DLL dari PC lokal saya:
Saya mengunggahnya ke kontrol sumber dan menambahkan folder itu ke ruang kerja build saya (Edit Definisi Build -> Pengaturan Sumber -> Folder Kontrol Sumber). Dari sana, saya bahkan tidak perlu mereferensikan folder - inilah tampilan UsingTask saya:
Sekarang saya dapat menggunakan tugas TransformXml sesuka hati saya dari proyek apa pun.
sumber
Untuk mengatasi masalah tersebut,
Ini memecahkan masalah karena membuat dll di jalur yang disebutkan.
sumber
Tools → Get Tools and Features... → Individual Components: Windows 10 SDK (10.0.14393.0) and ASP.NET and web development tools
. Ini sepertinya berhasil.Untuk VS2019
Saya ganti
MSBuildToolsVersion
denganVisualStudioVersion
.sumber
Karena hanya ada v12.0, v14.0 dan v15.0 di folder VisualStudio saya, saya mengedit file proyek saya dan mengubah jalur referensi dari v10.0 ke v14.0. Kemudian proyek berhasil dibangun.
Sebelum:
Setelah:
sumber
Jawaban yang benar untuk ini adalah dengan membongkar proyek yang dimaksud dan kemudian mengedit file csproj, mencari entri yang mereferensikan jalur 10.0 dan mengubahnya menjadi menunjuk ke 11.0.
sumber
Anda membutuhkan dua hal untuk membuatnya berhasil:
1) Instal Visual Studio Build Tools (Anda tidak memerlukan Visual Studio secara keseluruhan, hanya VS Build Tools) dengan opsi "Web development build tools" yang dipilih di server build Anda https://www.visualstudio.com/pl/thank -you-download-visual-studio /? sku = BuildTools & rel = 15
2) Pastikan jalur ke Microsoft.Web.Publishing.Tasks.dll sudah benar
sumber
Bagi saya itu mulai bekerja hanya dengan menambahkan referensi ke paket NuGet MSBuild.Microsoft.VisualStudio.Web.t target v14.0.0.3
Bahkan tidak perlu menambahkan elemen UsingTask ke file proyek seperti yang disebutkan oleh pembuat paket
Dan kemudian saya dapat menggunakan TransformXml dan tugas lainnya, yang ditentukan dalam paket, misalnya untuk mengubah app.config
sumber
Seandainya seseorang menggunakan csproj gaya SDK, Anda dapat mencapai ini tanpa harus menginstal Visual Studio di server build.
Pertama, Anda harus menginstal paket nuget SlowCheetah ke proyek Anda. Setelah Anda menginstalnya, Anda akan melihat yang berikut ini dalam proyek bergaya SDK Anda.
Kemudian pastikan Anda menambahkan atribut GeneratePathProperty = "true" (lihat di bawah). Ini sangat penting untuk bagian selanjutnya karena ini akan membantu Anda mengambil jalur di mana paket nuget dipulihkan pada mesin Anda. George Dangl menjelaskannya dalam artikelnya di sini .
Impor target SlowCheetah ke dalam proyek Anda:
Anda sekarang dapat menggunakan perintah target (dalam hal ini setelah dipublikasikan) untuk menerapkan beberapa transformasi kustom. Jika perlu, Anda selalu dapat melakukan hard-code untuk nama file di bawah daripada menggunakan variabel pada contoh di bawah.
Jika Anda belum pernah menggunakan SlowCheetah sebelumnya, saya sarankan untuk memeriksanya. Mereka memiliki ekstensi Visual Studio yang akan memudahkan Anda untuk melihat file transformasi.
sumber