.NET 4.0 membangun masalah di CI server

99

Ada yang berhasil mendapatkan kompilasi aplikasi .NET 4.0 di server CI tanpa menginstal Visual Studio 2010 di server CI?

Tidak ada SDK untuk .NET 4.0. Telah menginstal .NET 4.0 di CI Server. Msbuild.exe berfungsi untuk proyek sederhana dan memberikan peringatan berikut:

(GetReferenceAssemblyPaths target) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.t Target (847,9): peringatan MSB3644: Rakitan referensi untuk kerangka kerja ".NETFramework, Version = v4.0" tidak ditemukan. Untuk mengatasinya, instal SDK atau Targeting Pack untuk versi framework ini atau targetkan ulang aplikasi Anda ke versi framework yang SDK atau Targeting Packnya telah Anda instal. Perhatikan bahwa rakitan akan diselesaikan dari Cache Majelis Global (GAC) dan akan digunakan sebagai pengganti rakitan referensi. Oleh karena itu perakitan Anda mungkin tidak ditargetkan dengan benar untuk kerangka yang Anda maksudkan.

DMcKenna
sumber
1
Bagaimana saya bisa membuat ini menjadi kesalahan fatal daripada peringatan? Itu tersembunyi di log build kami dan malah gagal lebih jauh dengan beberapa pesan samar tentang mscorlib.dll
Colonel Panic
Saya telah menulis posting rinci tentang ini di sini: neelbhatt.com/2018/05/04/…
Neel

Jawaban:

128

Anda tidak perlu menginstal VS lagi, Anda dapat menginstal "Microsoft Windows SDK untuk Windows 7 dan .NET Framework 4" sekarang.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

JeremyWeir
sumber
44
Penginstalan default adalah 1,7 GB, tetapi sebagian besar file ini tidak diperlukan. Jika Anda tidak mencentang semuanya kecuali .NET Development> Intellisense dan Reference Assemblies yang masih akan memberi Anda paket penargetan .NET 4 yang Anda butuhkan (sekitar 450 MB).
Luke Sampson
1
Anda mungkin juga ingin memeriksa .NET Development> Tools karena itu akan membawa beberapa utilitas seperti sn.exe yang berguna untuk menangani rakitan yang ditandatangani.
Mykro
8
Ada juga penginstal web sehingga Anda hanya perlu mengunduh bagian yang diperlukan. Dapat diunduh di sini: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Meskipun ini dinamai "untuk Windows 7", perlu diperhatikan sistem operasi yang didukung: Windows 7, Windows Server 2003 R2 Edisi Standar (32-bit x86), Windows Server 2003 R2 Edisi Standar x64, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Paket Layanan 3
Aligma
2
Jawaban itu membantu saya. Saya mengalami masalah yang berbeda saat menginstal sdk 7.1 yang diselesaikan seperti yang ditunjukkan di sini mathworks.com/matlabcentral/answers/95039
ari
23

SDK untuk .NET 4.5 tersedia di sini . Pemasang berfungsi baik dengan proxy dengan otorisasi dasar. Sistem Operasi yang Didukung: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Jawaban saya lebih seperti komentar atas jawaban Jeremy , tapi reputasi saya tidak cukup untuk mengomentari jawaban.

resnyanskiy
sumber
1
Dari halaman referensi: "Windows SDK tidak lagi dikirimkan dengan lingkungan build baris perintah yang lengkap. Windows SDK sekarang memerlukan compiler dan lingkungan build untuk diinstal secara terpisah." Jadi saya berasumsi ini tidak cukup untuk menjalankan server build.
Chris
1
Ini memperbaikinya untuk saya. Anda hanya perlu memilih opsi ".NET Framework 4.5 Software Development Kit" yang hanya membutuhkan 62,3 MB dan berfungsi dengan baik di server TFS Build 2013 yang diinstal pada Windows Server 2012 R2 untuk penyebaran Aplikasi SharePoint. Tidak perlu mengganti parameter FrameworkPathOverride.
Koen Zomers
10

alternatif lain: tanpa menginstal Net 4.0 SDK atau vs 2010

Salin folder rakitan referensi dari mesin dev Anda ke server build (190MB).

gunakan msbuild -p: opsi FrameworkPathOverride untuk menunjuk ke folder rakitan referensi

lokasi rakitan referensi:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 atau C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

menemukan ini dari:

.NET 4.0 membangun rakitan referensi server peringatan MSB3644

Jika Anda mendapatkan kesalahan ini: "Microsoft.WebApplication.t Target tidak ditemukan" - cukup salin target dari mesin dev https://stackoverflow.com/a/5344246/423356

jika mvc3 tidak diinstal di server build; "tambahkan rakitan yang dapat diterapkan" ke proyek mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Jika Anda mengalami error saat membuat project MSTest tanpa menginstal sdk atau visual studio; Ada beberapa posting blog tentang ini, sayangnya solusinya terlalu rumit untuk saya. Saya menggunakan NUnit, bukan MSTest

layang-layang
sumber
Sejak server 2012 saya tidak mengizinkan saya menginstal .Net 4 karena penginstal mengatakan ada versi yang lebih tinggi. Saya melakukan apa yang dikatakan @kite dan menyalin dari PC yang saya miliki adalah VS 2012 diinstal. Ini menyelesaikan masalah saya.
chdev77
0

Halaman ini mencantumkan .NET SDK untuk setiap versi Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Untuk unduhan yang lebih kecil, pilih 'paket pengembang' atau 'paket penargetan' daripada Windows SDK lengkap.

Kolonel Panik
sumber
Ini bisa menjadi tip umum untuk menginstal paket pengembang atau paket penargetan, tetapi khusus untuk .NET Framework 4.0 (pertanyaan ini adalah tentang) tidak ada paket seperti itu dan Windows SDK tidak bisa dihindari.
Lex Li