我有应用程序a
-
在
[Run]
部分我有两个条目:Filename: "{dotnet40}regasm.exe"; Parameters: "MSAToolsLibrary_x86.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden Filename: "{dotnet4064}regasm.exe"; Parameters: "MSAToolsLibrary_x64.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden; Check: IsWin64
-
在
[UninstallRun]
中我有这两个条目:Filename: {dotnet40}regasm.exe; Parameters: /u MSAToolsLibrary_x86.dll; WorkingDir: {app}; Flags: runhidden; RunOnceId: "Unregister MSA Tools Library (32 bit)"; Filename: {dotnet4064}regasm.exe; Parameters: /u MSAToolsLibrary_x64.dll; WorkingDir: {app}; Flags: runhidden; RunOnceId: "Unregister MSA Tools Library (64 bit)"; Check: IsWin64;
现在,我有应用程序B,我希望它使用相同的DLL。我明白,这是足够安全的,简单地执行[Run]
进入再次。它只是意味着它将指向DLL的应用程序B副本。应该没问题。
我关心的是卸载。如果你安装了两个,然后卸载了一个,那么另一个仍然在使用DLL,所以它仍然需要注册,但可能重新注册到其他应用程序的位置,反之亦然。
我不知道该怎么做。
- 将文件安装到共享位置
- 保持引用计数
- 只在引用计数为0时注销。