لا يقوم MSBuild بنسخ ملف DLL، بينما يقوم Visual Studio بذلك

StackOverflow https://stackoverflow.com//questions/9636311

سؤال

في مشروعنا Visual Studio 2010، نشير - من بين مشاريع أخرى - إلى SmartAssembly.Attributes.dll ويتم نسخه بشكل صحيح إلى Bin/Debug أو Bin/Release مجلد آلات التطوير المحلية لدينا.ينطبق هذا على كافة المراجع الأخرى على خادم الإنشاء، ولكن ليس على "SmartAssembly.Attributes.dll".ينجح البناء.

ماذا يجب أن أتحقق؟

شكرًا.

هل كانت مفيدة؟

المحلول

افتح .csproj ملف (أو .vbproj file) وابحث عن مرجع التجميع.ثم تأكد من أن مسار التلميح لا يزال صالحًا في خادم البناء الخاص بك.في بعض الأحيان، يضيف VS2010 مسار تلميح مطلق، بدلاً من استخدام مسار متعلق بـ .csproj الملف نفسه، لذلك قد يكون حرف محرك الأقراص غير صالح في جهاز آخر.

على سبيل المثال، قد يبدو المرجع مشابهًا للمرجع الموجود أدناه (لقد قمت بإعداد ملف XML بالكامل أدناه للتوضيح فقط وهو غير صالح)، وقد يكون مسار التلميح المطلق غير صالح في خادم الإنشاء (على سبيل المثال.لا يوجد حرف محرك الأقراص د هناك):

<Reference
Include="SmartAssembly.Attributes, Version=8.0.0.0, 
       Culture=neutral, PublicKeyToken=b03f1f7f1ad5da3a,
       processorArchitecture=x86"> 
  <SpecificVersion>False</SpecificVersion>
  <Private>true<Private>

  <!-- The HintPath below should exist and be valid in your build server -->
  <HintPath>d:\temp\SmartAssembly.Attributes.dll<HintPath>
</Reference>

يمكنك تغيير HintPath لجعله مرتبطًا بـ .csproj الملف وبالتالي أكثر عمومية.على سبيل المثال:

  <HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>

مشكلة أخرى قد تكون ذلك <Private>true<Private> ليس هناك.تم تعيين هذه السمة إلى CopyLocal الخاصية في Visual Studio، لذلك إذا كانت مفقودة من ملفك .csproj, ، لن يتم نسخ ملف DLL إليه bin\Debug أو bin\Release بواسطة MSBuild.يرى http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top