Skip to content

Commit 3945622

Browse files
committed
把引用到的DLL打包到EXE里,做成单文件,方便携带
1 parent 03011d8 commit 3945622

File tree

5 files changed

+62
-39
lines changed

5 files changed

+62
-39
lines changed

PDFQFZ/Form1.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,20 @@ namespace PDFQFZ
1616
{
1717
public partial class Form1 : Form
1818
{
19+
System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)//把DLL打包到EXE需要用到
20+
{
21+
string dllName = args.Name.Contains(",") ? args.Name.Substring(0, args.Name.IndexOf(',')) : args.Name.Replace(".dll", "");
22+
dllName = dllName.Replace(".", "_");
23+
if (dllName.EndsWith("_resources")) return null;
24+
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(GetType().Namespace + ".Properties.Resources", System.Reflection.Assembly.GetExecutingAssembly());
25+
byte[] bytes = (byte[])rm.GetObject(dllName);
26+
return System.Reflection.Assembly.Load(bytes);
27+
}
1928
public Form1()
2029
{
30+
//在InitializeComponent()之前调用
31+
32+
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
2133
InitializeComponent();
2234
}
2335

PDFQFZ/PDFQFZ.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
<Compile Include="Properties\Resources.Designer.cs">
7878
<AutoGen>True</AutoGen>
7979
<DependentUpon>Resources.resx</DependentUpon>
80+
<DesignTime>True</DesignTime>
8081
</Compile>
8182
<None Include="packages.config" />
8283
<None Include="Properties\Settings.settings">
@@ -91,6 +92,7 @@
9192
</ItemGroup>
9293
<ItemGroup>
9394
<Content Include="logo.ico" />
95+
<None Include="Resources\itextsharp.dll" />
9496
</ItemGroup>
9597
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
9698
</Project>

PDFQFZ/Properties/Resources.Designer.cs

Lines changed: 36 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

PDFQFZ/Properties/Resources.resx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
4747
mimetype: application/x-microsoft.net.object.binary.base64
4848
value : The object must be serialized with
49-
: System.Serialization.Formatters.Binary.BinaryFormatter
49+
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
5050
: and then encoded with base64 encoding.
5151
5252
mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
6060
: and then encoded with base64 encoding.
6161
-->
6262
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63+
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
6364
<xsd:element name="root" msdata:IsDataSet="true">
6465
<xsd:complexType>
6566
<xsd:choice maxOccurs="unbounded">
@@ -68,9 +69,10 @@
6869
<xsd:sequence>
6970
<xsd:element name="value" type="xsd:string" minOccurs="0" />
7071
</xsd:sequence>
71-
<xsd:attribute name="name" type="xsd:string" />
72+
<xsd:attribute name="name" use="required" type="xsd:string" />
7273
<xsd:attribute name="type" type="xsd:string" />
7374
<xsd:attribute name="mimetype" type="xsd:string" />
75+
<xsd:attribute ref="xml:space" />
7476
</xsd:complexType>
7577
</xsd:element>
7678
<xsd:element name="assembly">
@@ -85,9 +87,10 @@
8587
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
8688
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
8789
</xsd:sequence>
88-
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
90+
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
8991
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
9092
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93+
<xsd:attribute ref="xml:space" />
9194
</xsd:complexType>
9295
</xsd:element>
9396
<xsd:element name="resheader">
@@ -109,9 +112,13 @@
109112
<value>2.0</value>
110113
</resheader>
111114
<resheader name="reader">
112-
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
115+
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
113116
</resheader>
114117
<resheader name="writer">
115-
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
118+
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116119
</resheader>
120+
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121+
<data name="itextsharp" type="System.Resources.ResXFileRef, System.Windows.Forms">
122+
<value>..\Resources\itextsharp.dll;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
123+
</data>
117124
</root>

PDFQFZ/Resources/itextsharp.dll

3.88 MB
Binary file not shown.

0 commit comments

Comments
 (0)