আমি একটি .vbs স্ক্রিপ্ট থেকে ডাকা csc.exe সংকলক ব্যবহার করি।
আপনার xyz.cs স্ক্রিপ্টে, নির্দেশের পরে নিম্নলিখিত লাইনগুলি যুক্ত করুন (আমার উদাহরণটি রেনসি এসএসএইচের জন্য):
using System;
using Renci;//FOR THE SSH
using System.Net;//FOR THE ADDRESS TRANSLATION
using System.Reflection;//FOR THE Assembly
//+ref>"C:\Program Files (x86)\Microsoft\ILMerge\Renci.SshNet.dll"
//+res>"C:\Program Files (x86)\Microsoft\ILMerge\Renci.SshNet.dll"
//+ico>"C:\Program Files (x86)\Microsoft CAPICOM 2.1.0.2 SDK\Samples\c_sharp\xmldsig\resources\Traffic.ico"
রেফারেস, রেস এবং আইকো ট্যাগগুলি সিএসসি কমান্ড গঠনের জন্য নীচে .vbs স্ক্রিপ্ট দ্বারা নেওয়া হবে।
তারপরে মেইন এ এসেম্বলি রিসলভার কলার যুক্ত করুন:
public static void Main(string[] args)
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
.
... এবং নিজে থেকেই ক্লাসের কোথাও রিসলভার যুক্ত করুন:
স্ট্যাটিক অ্যাসেম্বলি কারেন্টডোমাইন_অসাধারণের সমাধান করুন (অবজেক্ট প্রেরক, রেজোলিউভেন্ট এন্টারস আর্টস)
{
স্ট্রিং রিসোর্সনেম = নতুন এসেম্বলনেম (আরগস.নাম) .নাম + ".ডিল";
(var স্ট্রিম = এসেম্বলটি.গেটেক্সেকিউটিংঅ্যাস্পাবশন ()। গেটম্যানিফেস্ট রিসোর্সস্ট্রিম (রিসোর্নাম)) ব্যবহার করে
{
বাইট [] এসেম্বলিডাটা = নতুন বাইট [স্ট্রিম.লেন্থ];
স্ট্রিম.এড পড়ুন (এসেম্বলিডাটা, 0, এসেম্বলিডাটা.লাইনথ);
রিটার্ন এসেম্বলি.লড (এসেম্বলিডেটা);
}
}
আমি vs স্ক্রিপ্টটির নাম .cs ফাইলের সাথে মেলে (যেমন ssh.vbs ssh.cs সন্ধান করে); এটি স্ক্রিপ্টটি অসংখ্যবার চালানোকে অনেক সহজ করে তোলে তবে আপনি যদি আমার মতো বোকা না হন তবে জেনেরিক স্ক্রিপ্টটি টানুন এবং ড্রপ থেকে .cs ফাইলটি বেছে নিতে পারে:
ম্লান নাম_ও, শেল, fso
সেট করুন ওশেল = ক্রিয়েটওবজেক্ট ("শেল। অ্যাপ্লিকেশন")
সেট করুন fso = ক্রিয়েটওবজেক্ট ("স্ক্রিপ্টিং.ফাইলসিসটেমবজেক্ট")
'ভিবিএস স্ক্রিপ্ট নামটি টার্গেট ফাইলের নাম হিসাবে নিন
'################################################
নাম_ = বিভক্ত (wscript.ScriptName, "।") (0)
সি। সি ফাইল থেকে বহিরাগত ডিএলএল এবং আইকন নামগুলি পান
'################################################# ######
কনস্ট্যান্ট OPEN_FILE_FOR_READING = 1
অবজেক্ট ইনপুটফাইল = fso.OpenTextFile সেট করুন (নাম_ & ".cs", 1)
'কোনও কিছুতে পাঠান RE
'#############################
ইনপুটডাটা = বিভক্ত (Iজেপুটফাই.আরে পড়ুন সমস্ত, ভিবি নিউইলাইন)
ইনপুটডাটাতে প্রতিটি স্ট্র্যাডাটা জন্য
যদি বামে থাকে (strData, 7) = "// + ref>" তখন
csc_references = csc_references & "/ संदर्भ:" & ট্রিম (প্রতিস্থাপন (strData, "// + ref>", "")) এবং ""
শেষ যদি
যদি বামে থাকে (strData, 7) = "// + res>" তখন
csc_resources = csc_resources & "/ রিসোর্স:" & ট্রিম (প্রতিস্থাপন (strData, "// + res>", "")) এবং ""
শেষ যদি
যদি বামে থাকে (strData, 7) = "// + আইকো>" তখন
csc_icon = "/ win32icon:" & ছাঁটাই (প্রতিস্থাপন (strData, "// + আইকো>", "")) এবং ""
শেষ যদি
পরবর্তী
objInputFile.Close
'ফাইলটি কম্পাইল করুন
'################
oShell.ShellExecute "সি: \ উইন্ডোজ \ মাইক্রোসফট.নেট \ ফ্রেমওয়ার্ক \ v3.5 \ csc.exe", "/ সতর্কতা: 1 / লক্ষ্য: উদাহরণ" & csc_references & csc_res উত্স & csc_icon & "" & নাম_ & ".cs" , "", "রুনাস", 2
WScript.Quit (0)