WiX غير معرف المعالج متغير
-
20-09-2019 - |
سؤال
بدأت استخدام WiX من أجل القيام الآلي يبني لخلق msi من مشاريع c# و هل تعاني من الخطأ "غير معرف المعالج متغير '$(فار.MyProject.TargetDir)'"
أنا باستخدام أحدث WiX v3.0.5419.داخل وكسس الملف أحاول استخدامها من قبل المعالج المتغيرات المدرجة في هذه الصفحة (http://blogs.msdn.com/jrock/archive/2008/01/29/complete-list-of-candle-preprocessor-variables.aspx)
<Component Id="MyId" Guid="MyGuid">
<File Id="MyId" Name="MyName" KeyPath="yes"
Source="$(var.MyProject.TargetDir)\MyName.dll" />
</Component>
واضاف لقد مرجعا MyProject إلى .wixproj وإذا كنت فتحه في المفكرة أستطيع أن أرى الإشارة.
<ItemGroup>
<ProjectReference Include="..\MyProject.csproj">
<Name>MyProject</Name>
<Project>{guid}</Project>
<Private>True</Private>
</ProjectReference>
</ItemGroup>
هذا هو بلدي نانت بناء النصي التي تستخدم لإنشاء msi.ربما لأن .wixproj يعرف عن مشروع المرجعية التي لا تستخدم في بناء ؟
<exec basedir="${tools.wix}" managed="true" program="candle.exe">
<arg line='-out "${tools.wix.objfile}"' />
<arg value="../MySetup.wxs" />
</exec>
يمكن لأي شخص أن ينير لي على هذا من فضلك ؟
المحلول
كما لاحظ بالفعل ، نانت بناء السيناريو هو عدم استخدام wixproj
الملف على الإطلاق.
أنت خلط اثنين من الطرق المختلفة لبناء wix الإعداد هنا:
يمكنك استخدام
candle.exe
وlight.exe
أدوات سطر الأوامر مباشرة.هذا يتجاهل.wixproj
الملف.هذا هو ما تقومون به في نانت بناء السيناريو.لتمرير قيم المعالج المتغيرات مثل$(var.MyProject.TargetDir)
, استخدم خيارات مثل-dMyProject.TargetDir=c:\foo
.يمكنك المؤلف .wixproj الملف مع نذري (visual studio add-on wix).مثل كل مشروع visual studio الملفات ، wixproj الملف هو في الواقع msbuild الملف الذي يمكن بناء مع
msbuild.exe
.المتغيرات مثل$(var.MyProject.TargetDir)
يتم تلقائيا تعيين msbuild المهام لبناء wix الاجهزة إذا الصحيحة مرجع المشروع موجود.
أنصحك بناء wixproj الملف مع <msbuild>
نانت المهمة.هذا يضمن أن نانت بناء يفعل نفس الشيء عندما كنت بناء الإعداد يدويا من visual studio.