我一直在努力让安装程序为我为内部项目跟踪系统编写的IBugTraqProvider应用程序工作。但是在我安装它并尝试配置提供程序之后,我收到一条错误,指出无法创建提供程序并且可能无法正确安装。
这是我的inno设置脚本。谁能告诉我我做错了什么?我已经验证了安装脚本中的GUID与我的插件类中的guid相同。
我在Windows 7,64位上运行安装程序。
#define MyAppName "TortoisePTS"
#define MyAppVersion "1.0"
#define MyAppPublisher "**********"
#define MyAppURL "http://www.*********.com"
#define MyAppID = "{{9C37AA48-FEA5-48E5-A534-A204A169F42D}"
[Setup]
AppId={#MyAppID}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=no
OutputBaseFilename={#MyAppName} Setup
Compression=lzma
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "bin\x64\Release\{#MyAppName}.dll"; DestDir: "{cf}\{#MyAppName}"; Check: Is64BitInstallMode
Source: "bin\x64\Release\{#MyAppName}.pdb"; DestDir: "{cf}\{#MyAppName}"; Check: Is64BitInstallMode
Source: "bin\x64\Release\{#MyAppName}.dll.config"; DestDir: "{cf}\{#MyAppName}"; Check: Is64BitInstallMode
Source: "bin\x86\Release\{#MyAppName}.dll"; DestDir: "{cf}\{#MyAppName}"; Check: not Is64BitInstallMode
Source: "bin\x86\Release\{#MyAppName}.pdb"; DestDir: "{cf}\{#MyAppName}"; Check: not Is64BitInstallMode
Source: "bin\x86\Release\{#MyAppName}.dll.config"; DestDir: "{cf}\{#MyAppName}"; Check: not Is64BitInstallMode
[Registry]
Root: HKCR; SubKey: {#MyAppName}.Plugin; Flags: UninsDeleteKey;
Root: HKCR; SubKey: {#MyAppName}.Plugin; ValueType: string; ValueData: {#MyAppName}.Plugin;
Root: HKCR; SubKey: {#MyAppName}.Plugin\CLSID; ValueType: string; ValueData: {#MyAppId}; Flags: UninsDeleteKey;
Root: HKCR; SubKey: CLSID\{#MyAppID}; Flags: UninsDeleteKey;
Root: HKCR; SubKey: CLSID\{#MyAppID}; ValueType: string; ValueData: {#MyAppName};
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: mscoree.dll;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: Both; ValueName: ThreadingModel;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: {#MyAppName}.Plugin; ValueName: Class;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: "{#MyAppName}, Version={#MyAppVersion}, Culture=neitral, PublicKeyToken=null"; ValueName: Assembly;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: v2.0.50727; ValueName: RuntimeVersion;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32; ValueType: string; ValueData: {cf}\{#MyAppName}\{#MyAppName}.dll; ValueName: Codebase;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32\{#MyAppVersion}; Flags: UninsDeleteKey;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32\{#MyAppVersion}; ValueType: string; ValueData: {#MyAppName}.Plugin; ValueName: Class;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32\{#MyAppVersion}; ValueType: string; ValueData: "{#MyAppName}, Version={#MyAppVersion}, Culture=neitral, PublicKeyToken=null"; ValueName: Assembly;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32\{#MyAppVersion}; ValueType: string; ValueData: v2.0.50727; ValueName: RuntimeVersion;
Root: HKCR; SubKey: CLSID\{#MyAppID}\InprocServer32\{#MyAppVersion}; ValueType: string; ValueData: {cf}\{#MyAppName}\{#MyAppName}.dll; ValueName: Codebase;
Root: HKCR; SubKey: CLSID\{#MyAppID}\ProgId; Flags: UninsDeleteKey;
Root: HKCR; SubKey: CLSID\{#MyAppID}\ProgId; ValueType: string; ValueData: {#MyAppName}.Plugin;
Root: HKCR; SubKey: "CLSID\{#MyAppID}\Implemented Categories\{{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}"; Flags: UninsDeleteKey;
Root: HKCR; SubKey: "CLSID\{#MyAppID}\Implemented Categories\{{3494FA92-B139-4730-9591-01135D5E7831}"; Flags: UninsDeleteKey;
[Run]
Filename: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe; Parameters: /codebase {#MyAppName}.dll; WorkingDir: {cf}\{#MyAppName}; StatusMsg: "Registering plugin ..."; Flags: runhidden; Check: Is64BitInstallMode
Filename: C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe; Parameters: /codebase {#MyAppName}.dll; WorkingDir: {cf}\{#MyAppName}; StatusMsg: "Registering plugin ..."; Flags: runhidden; Check: not Is64BitInstallMode
[UninstallRun]
Filename: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\RegAsm.exe; Parameters: /unregister {#MyAppName}.dll; WorkingDir: {cf}\{#MyAppName}; StatusMsg: "UnRegistering plugin ..."; Flags: runhidden; Check: Is64BitInstallMode
Filename: C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe; Parameters: /unregister {#MyAppName}.dll; WorkingDir: {cf}\{#MyAppName}; StatusMsg: "UnRegistering plugin ..."; Flags: runhidden; Check: not Is64BitInstallMode
答案 0 :(得分:1)
Root:HKCR; SubKey: CLSID\{#MyAppID}; ValueType: string; ValueData: {#MyAppName};
应该是:
Root:HKCR; SubKey: CLSID\{#MyAppID}; ValueType: string; ValueData: {#MyAppName}**.Plugin**;