我的办公室使用了Click Once Deployment程序。 1.5MB是实际节目。其余的是静态DLL,如EPPlus和PDFSharp。我还有一些总共大约7MB的人,我已经准备好使用大小为154MB的SyncFusion库。
我决定将这些DLL文件保留在部署之外,而是将它们安装到相关系统中。我使用Inno和modpath.iss来安装这些。
[Setup]
AppId={{6485E93B-75FC-4613-AFB7-A1800B986F7D}}
AppName="Required DLL Files"
AppVersion="1.0"
DefaultDirName="{pf}\FE Libraries"
OutputBaseFilename="Required DLL Files.exe"
Compression=lzma2/ultra64
SolidCompression=yes
ChangesEnvironment=true
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "Files\*"; DestDir: "{app}"; Flags: "deleteafterinstall"
[Tasks]
Name: modifypath; Description: &Add application directory to your environmental path; Flags: unchecked
[Code]
const
ModPathName = 'modifypath';
ModPathType = 'system';
function ModPathDir(): TArrayOfString;
begin
setArrayLength(Result, 2)
Result[0] := ExpandConstant('{app}');
end;
#include "modpath.iss"
文件安装到正确的位置,Path添加到System Environmental。
位置
c:\Program Files (x86)\WOTC-FE Libraries
路径字符串
c:\Program Files (x86)\WOTC-FE Libraries
这是一个x86编译的应用程序。
但是,该程序不会运行任何需要这些DLL文件的函数。我收到的错误表明已经注册的DLL文件没有安装。
System.IO.FileNotFoundException: Could not load file or assembly 'EPPlus, Version=4.0.5.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1' or one of its dependencies. The system cannot find the file specified.
File name: 'EPPlus, Version=4.0.5.0, Culture=neutral, PublicKeyToken=ea159fdaa78159a1'
我错过了什么?