私はother questionを残すことにしました。私は、this pageに書かれたJeffrey Richterのメソッドを使用して、新しいアプリケーションを.dllライブラリをアプリケーションにマージすると考えました。そこで、.dllファイルを埋め込みリソースとして追加し、リファレンスとして追加しました。その後のProgram.cs(私は彼が投稿コードが行くことになっている分からない)で、私はこれを追加しました:.NETでの.dllアセンブリのマージ
...
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1)
_in = args[1];
SingleInstanceController controller = new SingleInstanceController();
controller.Run(args);
AppDomain.CurrentDomain.AssemblyResolve += (sender, argsx) =>
{
String resourceName = "AssemblyLoadingAndReflection." +
new AssemblyName(argsx.Name).Name + ".dll";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
}
;
私は何か他のものにresourceNameのを変更することになっているだろうか?正しい場所に正しく追加しましたか?
今問題は、それでもアセンブリを見つけてロードすることができず、私が間違っていたことがわかりません。どんな助けもありがとう。
好奇心が強い。 DLLを静的にリンクするのはなぜですか? –
私は自分のプログラムを配布したくないので、ユーザーは役に立たないことが分かります。 – Iceyoshi
なぜ、ユーザーはプログラムファイルを掘り起こすのですか?サブディレクトリにそれらをインストールし、それを使って完了してください。つまり、 "DLL"の "DL"はあなたが知っている "Dynamic Link"の略です。 –