In product.wxs I have:
<UIRef Id="WixUI_InstallDir" />
In LocalizableResources.wxl I have tried to override some strings:
<String Id="BrowseDlg_Title">I was here</String>
<String Id="InvalidDirDlg_Title">I was here</String>
<String Id="InvalidDirDlgText">I was here</String>
It works for the BrowseDlg, but not for the InvalidDirDlg. When I run the installer and I try to choose a DVD drive for the install directory, the error message I get is "The volume D:\ is currently unavailable. Please select another." This isn't even the expected string from WixUI_en-us.wxl, which is "Installation directory must be on a local hard drive."
How can I override the InvalidDirDlg? Why is it displaying the wrong error message?
Actually, the code in the question does work! If I choose a USB stick I get the InvalidDirDlg popping up with the overridden strings. It's only the DVD drive that doesn't work.
I was able to override the error for the DVD drive by using an Error element as explained here.
Related
I am getting an error while installing setup for my application...
Error:
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. This error code is 2612.
What could be an issue? Please help!
Found the solution, I had couple of shortcuts which were pointing to icon files (Help.ico) but they were not really icon files. Few weeks ago, I renamed Help image file (.png or .jpg) to Help.ico for some reason and setup was pointing to those files. Incorrect stream...
<Shortcut Id="StartMenuItemHelp" Name="Application Help" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Help.ico" Advertise="yes">
<Icon Id="Help.ico" SourceFile="$(var.SolutionDir)\SetupFiles\Help.ico" />
</Shortcut>
According to https://developer.android.com/training/wearables/watch-faces/service.html, I need the two privileges shown here from my manifest file:
<!-- Required to act as a custom watch face. -->
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<!-- So we can keep the screen on and start vibrations -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
However, starting recently (perhaps since I upgraded my watch to 6.0?) I see the following in the log:
06-07 12:14:24.609 470-493/? W/PackageManager: Unknown permission com.google.android.permission.PROVIDE_BACKGROUND in package com.pipperpublishing.refwatch
I've Googled for any changes in the permission model, perhaps associated with the new model in 6.0, but can't find anything about this.
Any thoughts?
UPDATE: Looking at https://developer.android.com/reference/android/Manifest.permission.html it's clear that PROVIDE_BACKGROUND is no longer there, but I can't find anything that says it's been replaced or why it's no longer needed.
I relayed this question over to the Wear development community on G+, and according to a Google dev advocate there, this permission was never actually used - and is safe to remove from your manifests.
Reference: https://plus.google.com/+SterlingUdell/posts/hvec9y93Gtf
I am creating a DNN module, and have a working module based on this: http://www.subodh.com/Projects/DNN-Module.
When I install it on a DNN 5.6.2 installation, everything works fine, except the .ascx files do not copy over. If I copy the .ascx files manually, the module works fine.
My .dnn file looks like this:
...
<moduleDefinitions>
<moduleDefinition>
<friendlyName>SignUp.Control1</friendlyName>
<defaultCacheTime>0</defaultCacheTime>
<moduleControls>
<moduleControl>
<controlKey />
<controlSrc>Control1.ascx/Control1.ascx</controlSrc>
<supportsPartialRendering>True</supportsPartialRendering>
<controlTitle>Control1</controlTitle>
<controlType>View</controlType>
<iconFile />
<helpUrl />
<viewOrder>0</viewOrder>
</moduleControl>
...
</moduleControls>
</moduleDefinition>
</moduleDefinitions>
...
Specifically, Control1.ascx does not get copied to the DesktopModules/SignUp directory.
I do not get an error. Here is the relevant section of what DNN says when installing the module. I get no errors on install.
...
Info Component installed successfully - Script
Info Starting Installation - Module
Info Module registered successfully - SignUp
Info Component installed successfully - Module
Info Starting Installation - Assembly
...
Can anyone tell me why the controls are not copying over to the appropriate directory?
Thanks.
It seems you have a mistake in <controlSrc> tag, maybe you mean: <controlSrc>DesktopModules/SignUp.Control1/Control1.ascx</controlSrc>
Also you need to mention this file in <component type="File">:
<component type="File">
<files>
<file>
<path>Your Desire Path</path>
<name>Control1.ascx</name>
</file>
</files>
</component>
In addition to Ehsan's answer you can use MSBuild and Chris Hammonds template (http://christoctemplate.codeplex.com) which will create a resources zip and you have a single resources node rather than individual nodes for each file
I'm in a kind of misery. I got an installer installing and starting a tray icon app (common .exe)
This is working properly, but now i want to stop that app before this UI telling the user to close the app manually comes up, because during the deinstall routine, my tray icon is removed but the process is still running.
I applied this custom action to close the app before uninstall (or even during)
<CustomAction Id="CloseTrayApp" ExeCommand="-exit" FileKey="TrayApp" Execute="immediate" Return="asyncNoWait" />
<InstallExecuteSequence>
<Custom Action="CloseTrayApp" Before="InstallValidate" />
</InstallExecuteSequence>
But the "close all running apps" dialog still pops up, but i thought that this will solve my issue.
I already tried to use the CloseAction but i got into a hurry using it because of error while compiling the stuff. It says that the WixUtils namespace may be missing but i double checked that it is there:
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
How can I avoid the dialog window poping up and trigger this custom action to be executed?
You also have to add a reference to WixUtilExtension.dll. If you are using Visual Studio / Votive you just right click add reference and select the DLL from [ProgramFilesFolder]Windows Installer XML v3.5\bin. Otherwise you have to make the extension available to the compiler and linker:
candle.exe yourfile.wxs -ext %full path to WixUtilExtension.dll%'
light.exe yourfile.wixobj -ext %full path to WixUtilExtension.dll% –out yourfile.msi yourfile.wixout'
More information can be found at:
Using Standard Custom Actions
Please note that the CloseApp custom action has a limitation that it won't "terminate" your application. It will only politely send your app a WM_CLOSE message and it's up to your trayapp to receive and process that message with a shutdown.
One of our MSI's has started failing with Error 2902. It'll get most of the way through the installation, pop an error box, and then back out the install. We haven't made any major changes to the installer since the last working version.
Running msiexec with logging turned on gives a more informative message:
Action 17:21:22: RegisterProduct. Registering product
Error 2902: Operation ixoFileCopy called out of sequence
This comes immediately after the "WriteRegistryValues" section. Does anyone know what causes the call to ixoFileCopy? I'm guessing the resolution will involve changing the sequence of the "RegisterProduct" step, but I'm not sure what it should proceed.
Thanks for any help!
It turns out that in our case this was happening due to a data file getting too big for MSI to handle without chunking the cab. This thread mentions the issue and one possible workaround.
I had the same error.
Apparently, there were files missing or corrupted (network error?). The problem has been solved after copying the whole folder again.
I've also seen this error when components are provided with blank guids.
e.g.
<Component Id="cmp_MyFailingComponent" Guid="">
<File Id="f_myFile"
Assembly=".net"
Source="C:\Program Files\MyFile.dll"
KeyPath="yes"/>
</Component>
I've seen this error when some of the database column fields are longer than the column width.
I had converted an MSI into an InstallShield project, made a few additions, and built a new MSI - it built without any errors. Installation then failed with error 2902.
The components that failed had component names longer than the allowed 72 characters. (see Component table) The original MSI worked fine despite having the long names, but I guess they caused InstallShield to improperly build the MSI somehow. Not InstallShield's fault, although I do think it should have raised an error during the build.