엑셀 추가 기능을 개발 중입니다. 일련 번호 (예 : 100 psc)가 있으며 PC에 추가 기능을 설치할 때 Excel에서 확인하고 싶습니다. 하지만 VS2010 설치 프로젝트에서는 일련 번호 목록 저장 및 확인을 지원하지 않기 때문에이 작업을 수행 할 수 없습니다.설치 팩토리가있는 2010 추가 기능 설치 프로젝트를 능가하십시오.
은 그래서 설정 공장이 작업을 수행 할 수 나는이 링크처럼 한 : link
하지만 문제 엑셀있다;
"예"를 선택하면 "아니오"를 선택하면 .dll을 열 수 있습니다.
이처럼 내 설치 공장의 목록입니다.
내 설정 공장 "게시물에 설치 스크립트는"내 Addinfilename의 값은 자동화 추가 기능을 구축하고있다처럼
-- Determine registry key (2 = HK CURRENT USER)
sVersions = Registry.GetKeyNames(2, "Software\\Microsoft\\Office");
-- Iterate through the registry keys per MS Office-version
--Next line has SetupFactory 8 code
--for iCount1, sVersion in sVersions do
for iCount1, sVersion in pairs(sVersions) do
-- Try opening the registry key
sSubKey = "Software\\Microsoft\\Office\\"..sVersion..
"\\Excel\\Options\\"
sValues = Registry.GetValueNames(2, sSubKey);
--initialize index counter
iIndex = -2
if sValues then
--Determine the index of the maximimum OPEN registry entry
--Next line has SetupFactory 8 code
--for iCount2, sValue in sValues do
for iCount2, sValue in pairs(sValues) do
if (String.Left(sValue, 4) == "OPEN") then
--Check whether the user did not already install
--the same add-in to prevent errors when opening Excel
sKeysValue = Registry.GetValue(2, sSubKey, sValue, true)
if String.Find(sKeysValue, SessionVar.Expand(
"%AddinFileName%"), 1, false) > 0 then
iIndex = -1
-- leave loop
break;
else
if (sValue == "OPEN") then
iIndex = 0
else
iIndex = String.ToNumber(String.Mid(
sValue, 5, String.Length(sValue)-4))
end;
end;
end;
end;
-- -1 means: This add-in is already installed; we're done
if iIndex ~= -1 then
--Determine path based on variable "%AddinFileName%
sAppPath = String.Char(34)..
SessionVar.Expand("%AppFolder%")..
"\\"..
SessionVar.Expand("%AddinFileName%")..
String.Char(34)
-- -2 is the initialized value of the index counter
if (iIndex == -2) then
-- OPEN-key does not exist
Registry.SetValue(2, sSubKey, "OPEN",
sAppPath, REG_SZ)
else
Registry.SetValue(2, sSubKey, "OPEN"..(iIndex + 1),
sAppPath, REG_SZ)
end;
end;
end;
end;