রিলিজ মোডে সংকলিত নুগেট প্রকল্পগুলি প্যাকিং হচ্ছে?


109

রিলিজ মোডে সংকলিত কোড ব্যবহার করে নুগেট প্যাকেজ তৈরি করার কোনও উপায় আছে কি? অথবা আমার কেবলমাত্র ডিবাগ মোডে সংকলিত প্যাকেজগুলি (স্থানীয়ভাবে উপলব্ধ করা উচিত) প্রকাশ করার কিছু কারণ রয়েছে?

আমি যখনই nuget packআমার প্রোজেক্ট ডিরেক্টরি থেকে কল করি, যেখানে আমার নীচে নুসপেক ফাইল রয়েছে, কোডে আমি কেবল রিলিজ মোডে সংকলন করেছি, এটি ডিবাগ ফোল্ডারে ( "\bin\Debug\SomeProject.dll") ডিএলএল খুঁজে না পাওয়ার বিষয়ে অভিযোগ করে । যদি আমি এটি ডিবাগ মোডে সংকলন করি তবে সেই ফাইলগুলি সেখানে থাকে এবং এটি সেগুলি যেমন প্যাক করে ততই প্যাক করে।

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>$id$</id>
        <version>$version$</version>
        <authors>$author$</authors>
        <owners>$author$</owners>
        <iconUrl>http://somewhere/project.png</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>$description$</description>
    </metadata>
</package>

উত্তর:


207

আপনি এটির মতো সমাধান করতে পারেন: NuGet.exe pack Foo.csproj -Prop Configuration=Release( রেফারেন্স )।


10
যে কেউ লিঙ্কটি থেকে ছোট গল্প চান (ভাল পড়ুন, যদিও), v1.3 থেকে v1.4 এ পরিবর্তন হয়েছিল যা রিলিজের ডিফল্ট থেকে প্রজেক্ট সেটিং থেকে টানা একটি ডিফল্টে চলে যায় যা কেবল পরিবর্তিত হতে পারে প্রকল্প ফাইলটি সরাসরি (কোনও ভিএস জিইউআই বিকল্প নেই)। ভবিষ্যতের সমস্ত nuget packকলের জন্য কমান্ড-লাইন সম্পত্তিটির খামচি এড়ানোর জন্য আপনার প্রিয় পাঠ্য সম্পাদকটিতে প্রজেক্ট ফাইল এক্সএমএল সম্পাদনা করুন।
পৃষ্ঠপোষক

4
একটি প্যাকেজে কোনও রিলিজ এবং ডিবাগ সংস্করণ উভয়ই প্যাকেজ করার কোনও উপায় আছে এবং তারপরে আমার প্রকল্পটি ডিবাগ একটি বনাম রিলিজটি স্বয়ংক্রিয়ভাবে ব্যবহার করতে পারে I'm
জেডি

2
আপনি যদি কেবল আপনার প্যাকেজের জন্য ডিবাগ প্রতীক চান তবে আপনি নিজের পিডিবি ফাইলগুলিকে * .nspec (যেমন, <file src="bin\Release\*.pdb" target="lib\net40\" />) এর অন্তর্ভুক্ত করতে পারেন বা আপনার ডিএলএল প্যাকেজের পাশাপাশি একটি প্রতীক প্যাকেজ প্রকাশ করতে পারেন
পৃষ্ঠপোষক

1
@ জিওরগি লিঙ্কটির মেয়াদ শেষ হয়েছে
ওয়েপেনগ এল

1
@JD আমিও উভয় ডিবাগ এবং রিলিজ প্যাকেজ করতে চান, এবং আমি এই খুঁজে পেয়েছি: stackoverflow.com/questions/37673692/...
পিটার-ইউ

16

আপনি যদি কোনও পোস্ট-বিল্ড ইভেন্ট ব্যবহার করে থাকেন এবং আপনি ডিবেগ বা রিলিজ কনফিগারেশন ব্যবহার করে কোনও প্যাকেজ তৈরি করতে চান তবে আপনি পোস্ট-বিল্ড ইভেন্টের কমান্ডলাইনটি সেটআপ করতে পারেন:

"<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)

10

আপনি যখন চালান তখন নুগেট স্বয়ংক্রিয়ভাবে রিলিজ মোড ব্যবহার nuget packকরতে, নিম্নলিখিতটি করুন:

  1. .csprojএকটি টেক্সট সম্পাদক এ আপনার ফাইল খুলুন ।
  2. নিম্নলিখিত লাইনটি সন্ধান করুন:

    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    
  3. এই লাইন ইন, প্রতিস্থাপন Debugসঙ্গে Release
  4. পরিবর্তনগুলোর সংরক্ষন.

0

এখানে উত্তরগুলি ভাল, তবে একটি। নেট স্ট্যান্ডার্ড প্রকল্পের জন্য আমি এতে অনেক সমস্যা হচ্ছিলাম। আমার একটি প্রকল্প ছিল যা কেবলমাত্র রিলিজ বাইনারি প্রকাশ করতে চলেছিল, তবে এটি আমার ডিফল্ট বিল্ড আউটপুট পাথকে সম্মান করে না।

আমি আমার CSProj যা পরে আমাকে সক্রিয় গৃহীত উত্তর ব্যবহার করতে এটিকে জুড়েছে এখানে

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
      <OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.