Msbuild yordamida veb-joylashtirish uchun paket yaratishga harakat qilsam, u faqat dll loyihalarini o'z ichiga oladi. Paket zip fayli yoki vaqtinchalik katalog havola qilingan loyihaning DLL fayllarini o'z ichiga olmaydi.
Men ushbu postni va bu mening muammom emas. Men, albatta, tarqatish paketini yaratayotgan asosiy loyihamdagi havola qilingan loyihalar kodidan foydalanaman.
Men paketni yaratish uchun MSBUILD 4 dan foydalanmoqdaman.
Men VS2010 yordamida paketni aynan bir xil loyiha fayli yordamida yaratganimda, u yaxshi ishlaydi. Barcha havola qilingan loyihalarda dll fayllari package.zip fayliga kiritilgan.
Men _PackageTempDir manzilini o'zgartirishga harakat qildim va bu ham muammoni hal qilmadi.
Men ExcludeFilesFromDeployment xususiyatini olib tashlashga harakat qildim va natijalarni o'zgartirishi yoki yo'qligini bilish uchun PackageAsSingleFile sozlamasini "false" ga o'rnatdim.
Mana mening Paket uchun maqsadim. Barcha regexlar shuning uchun men loyiha fayl nomini qidirish yo'lining oxiridan tortib olaman va keyin bu nomni chiqish papkasi nomi va zip fayl nomi uchun ishlataman. PackageOutputDir men import qilayotgan xususiyatdir.
<Target Name="Package">
<MSBuild Projects="@(PackageProject)" Targets="Package" Properties="Platform=$(Platform);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageOutputDir)\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2])\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2]).zip;
PackageAsSingleFile=true;
ExcludeFilesFromDeployment=Web.config;
_PackageTempDir=$(PackageOutputDir)\temp;">
</MSBuild>
</Target>
Nima uchun u mening havola qilingan loyiha DLL fayllarini o'z ichiga olmaydi, degan fikr bormi?