좋아, WiX로 할 수있는 유일한 방법을 결정했습니다 (이전 설치 관리자 덕분에 지금 업그레이드해야한다고 쓰여졌습니다). 일부 사용자 지정 작업.DTX가 포함 된 WiX 사용자 지정 작업 ... 매우 혼동 됨
기본적으로 RemoveExistingProducts 전에 파일을 백업하고 RemoveExistingProducts 이후에 해당 파일을 다시 복원해야합니다. 나는 이것이 "type 2 custom action"이라고 생각합니다.
그러나 내가 이해할 수있는 것은 처음에는 C# 동작 (파일이 WiX에서 가져온 디렉토리)에 데이터를 전달하는 방법과 내 C# (DTF ?) 액션을 Binary 및 CustomAction 태그와 함께 사용합니다.
또한이 모든 것이 태그에 있어야합니까? 모든 예는 그 방법을 보여줍니다. 여기
는<Binary Id="backupSettingsAction.dll"
SourceFile="backupSettingsAction.CA.dll"/>
<CustomAction
Id="BackupSettingsAction"
BinaryKey="backupSettingsAction.dll"
DllEntry="CustomAction"
Execute="immediate" />
<InstallExecuteSequence>
<Custom Action="backupSettingsAction.dll" Before="InstallInitialize"/>
<RemoveExistingProducts After="InstallFinalize" />
<Custom Action="restoreSettingsAction.dll" After="RemoveExistingFiles"/>
</InstallExecuteSequence>
내가 백업해야 할 파일은 이전의 설정 파일 (그대로 유지 필요가있는) 설치는 ... 내가 지금까지 .WXS 파일이 무엇인가, 그것을 디렉토리에 있습니다
<Directory Id="CommonAppDataFolder" Name="CommonAppData">
<Directory Id="CommonAppDataPathways" Name="Pathways" />
</Directory>
를 그리고 이미 존재하는 파일을 백업해야하지만 심지어 그것을 위해 구성 요소 태그가 :
<Component Id="Settings" Guid="A3513208-4F12-4496-B609-197812B4A953" NeverOverwrite="yes" >
<File Id="settingsXml" ShortName="SETTINGS.XML" Name="Settings.xml" DiskId="1" Source="\\fileserver\Release\Pathways\Dependencies\Settings\settings.xml" Vital="yes" />
</Component>
를
namespace backupSettingsAction
{
public class CustomActions
{
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session.Log("backing up settings file");
//do I hardcode the directory and name of the file in here, or can I pass them in?
return ActionResult.Success;
}
}
}
어떤 도움을 크게 apprecaited된다
그리고 이것은 나를 위해 만든 비주얼 스튜디오 (2005)하는 C#을 파일을 참조한다. 고맙습니다!
문제는 내가 작성하지 않은 이전 설치 관리자가 제거시 XML 파일을 삭제하려고한다는 것입니다. 여기까지 나를 이끄는 진보가 있습니다 ... http://stackoverflow.com/questions/2768701/stuck-on-preserving-config-file-in-wix-major-upgrade http : // https://adackoverflow.com/questions/2775763/problem-with-wix-major-upgrade http : //stackoverflow.com/questions/2951355/wix-major-upgrade-need-different-behaviors-for-different-components – Joshua
아, 이제 알겠습니다. 이전에이 문제가 있었는데 이전 설치 프로그램을 "패치"하여 중요한 업그레이드를 위해 설치 프로그램을 호출하기 전에 문제를 변경했습니다. 그런 식으로 RemoveExistingProducts가 제거를 위해 이전 제품을 호출 할 때 잘못된 동작이 발생하지 않습니다. –