2 merge modules have same file name in wix - wix

I have several existing merge modules and one created by me. Lets call my module as 'A'. My merge modules and one existing merge module(say B) contains a file with the same name(customUI.resources) but with different content.
I am making an installer which uses both modules A & B. I want to use the customUI.resources file from module 'A'. When i compile the installer.wix file, it gives me the error as:
light.exe : error LGHT0204 : ICE30: The target file 'va2q4hvb.res|CustomUI.resources' is installed in '[ProgramFilesFolder]\abc\' by two different components on an LFN system: '_5AD14D2401C1408A8B1117B8B85F53E3.7C263653_7A00_4D9C_B52A_39AF1892BC49' and 'Adapter_Config_ja.BABCE01A_0CB9_4A62_B877_5E520A53D609'.
This breaks component reference counting. How can i resolve this error?

Are you in control of authoring module a and b?
If so, author the files as 2 different filenames and use the CopyFile element ( DuplicateFile table ) to duplicate the specific name to the common desired name. Also put mutually exclusive conditions on the components to make sure only one or the other gets installed.
Then in your main installer set a property to decide which one gets installed. The result will pass all ICE validation tests and give you the desired behavior.

You could use Dark to decompile the merge modules and then either combine them to a single module or re-create merge module B without the conflicting file.

Related

Wrong "ReflectedWorkItemIDFieldName" while migrating Azure DevOps Work Items

I am testing the azure-devops-migration-tools and have create a project using https://azuredevopsdemogenerator.azurewebsites.net/ (Parts Unlimited). I have generated the configuration.json and changed the Source and Target so I can test a migration, but I'm getting errors while migrating Work Items.
[15:14:41 ERR] Error running query
Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException: TF51005: The query references a field that does not exist. The error is caused by «ReflectedWorkItemId».
I've tried different options on the "ReflectedWorkItemIDFieldName" field, Scrum, Basic, Agile, Custom, empty but am still unable to migrate the work items.
How can I get the value to put on this field for the specific project?
Thanks,
Bruno
Quick Solution: Most ADO instances use the prefix 'custom' for new fields. Try "Custom.ReflectedWorkItemId" in your configuration.json to see if that resolves the problem.
More details: It's hard to tell without an actual configuration.JSON file to review. One possible problem is that you need to use the actual and full internal 'Name' of the ReflectedWorkItemID field. This doesn't show in ADO, or the Process Template when created. The recommendation is that you create a query referencing your custom field, and export the WIQL file (query file). Once you export the WIQL file, you can then open the file and see the full syntax of the custom field.
Exporting Queries: If you don't know how to do this, it can be done with VisualStudio. If you don't know how to do that, you can install this extension. It's a handy WIQL import/Export and editor. Install, and your ADO Queries with have an Edit in WIQL Editor option. Create a query that exposes your 'ReflectedWorkItemID' as a column, then edit that query in the WIQL editor and see the full names of the Reflected Work Items ID Feild. https://marketplace.visualstudio.com/items?itemName=ottostreifel.wiql-editor
SELECT
[System.Id],
[System.WorkItemType],
[System.Title],
[System.AssignedTo],
[System.ChangedBy],
[Custom.ReflectedWorkItemId]
FROM workitems
WHERE ...
I found a possible solution. I have created a custom process, change the process from the projects to this new one and add a new field. This is the field I'm using on the configuration.json and now I'm able to migrate work items
To make the migration in the "ReflectedWorkItemIDFieldName" you must do:
"Organization Settings" -> Process -> Select the process where you project are (Basic, Scrum, Agil, or CMMI).
then click on the 3 dots and create a new Inherited process.
Then with the inherited process, you are able to create a new field for each work item type. The name that you type (could be "IronMan") that name will be in your configuration file.

Link two DOOR's modules without programming

I am new with IBM DOORS and I need some hint or help with this, probably, basic issue.
I have a Module A which contains some requirements and another Modules B,C,D etc, which corresponds to a concrete supplier answering to requirements that come from Module A. Therefore, if a requirement changes (i.e the text) I would like that automatically that change is also shown in modules B,C D...
Module A (Atributes)
Req_code (text)
Req_type
Req_text
Req_owner
[...]
Module B,C.. (Atributes)
Req_code (text)
Supplier
Base_option
Req_answer
Req_comments
[...]
The idea is, somehow, to make a linkage between Req_code in Module A and Req_code from other modules (one to many) so I can create a complete view with atributes from two modules.
I have been searching on the web but I have only found that this could be done with a dxl script. Is there any other way to do this not involving programming? I tried creating a linkage module, but I did not get what I wanted.
Thanks in advance,
Bilbinight
I think what you want is actually the companion of link-by-attribute; Link > Advanced > Create links..., but first lets do a little architecture creation.
I am assuming that B, C, etc. will be creating answers to A and, as such, will be doing the linking to the objects in A as they answer. With this information, we can create Module A with Req_code (use "Object Identifier"), Req_type (Type:string or enumerated list), Req_text (Use "Object Text"), Req_owner (Type:string), etc.
Similarly, create Modules B and C with such attributes as necessary to describe the information to be contained in them. finally create a link module "L" to contain the Link Sets for B->A and C->A. note the link module contains only link sets, not actual links. the links are stored in the source modules, i.e., Modules B and C.
Just to be safe, I would also go to File > Module Properties... select Linksets tab and set linksets in each of B and C to A through link Module L. Make mandatory and Only allow outgoing links... at the bottom.
Now we are ready to create objects in A (Insert > Object). Create some requirement text in the "Object Text" attribute or any other attributes that you want to appear in the other modules.
go to B and create an object. Link > Start Link go to the Object in A you want to link to and select Link > Make Link from Start. (It may ask the first time if you want to create a link set, just say Yes.) a little orange outgoing, and yellow incoming triangle will appear on each corresponding object.
finally, in B Analysis > Wizard... choose Out-links, DOORS links only; Next> (since we only have one anyway) choose All (formal) modules and All (Link) Modules; Next>
(choose the attributes you want to display from the other module) Next> (make sure Recursive analysis is not checked) and Finish.
This will create another column in Module B with the attributes you want to display from Module A.
You can now go to View > Save As... and give the view a name and at any time, see the linked information from Module B.
The only DXL that was written here was the DXL you wrote when you ran the Wizard.
WOW! A whole free training module in how to use DOORS!
You will want to investigate the 'Link by Attribute' tool under the Link - Advanced menu. This is on DOORS 9.6.1.10, though most 9.x should have the same.
You will be able to create links between two modules, matching up a particular attribute- and then repeating the process for each subsequent module you need to link to.

How to declare module_name in groups Odoo

I used this code in a xml view in ideas_app module:
groups="group_vote_user"
but i got this error "External ID must be fully qualified"
Is it really need module name like groups="ideas_app.group_vote_user" even this view in same module with group_vote_user security (in module ideas_app)?
Is there any ways to not declare module name or change with this.group_vote_user like that?
I think, you need to check sequence of files in manifest file. For example, security.xml should be come first and then others view files.
I am not sure if there is a way to change it. But as per standards, we need to follow standard way like "module_name.xml_ID"

Can CPACK_INSTALL_CMAKE_PROJECTS be used for selective install?

For my application, I created 4 components, and want to 'install' only the applications and their docs. According to https://cmake.org/Wiki/CMake:CPackConfiguration, if in my config file I have the line
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};ALL;/")
then all the four components are installed. If I use the component names instead like
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};apps docs;/")
I receive a package with no component name appended, and it contains the top level requested directory but no files at all. If I provide only one component like
set(CPACK_INSTALL_CMAKE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};apps;/")
the package name does not contain the name of the component, but the files are generated in their right position.
What do I wrong?
EDIT: Just to add more strange things:
For the ALL case 4 files with names install_manifest_+comp name are created. For the second case I have install_manifest_apps docs.txt of zero length, and for the third case I have install_manifest_apps.txt, with the right content.
It seems to me that the macro can only accept one argument which can be either ALL or a component name; this means it cannot be used to install a 2-component system.
Moreover: if I use a component name, make package only produces that one package, without appending the component name, but with the right content. Till now I guessed that make install and make package are independent.
Set multiple values to CPACK_INSTALL_CMAKE_PROJECTS, one for each component you want to include:
set( CPACK_INSTALL_CMAKE_PROJECTS
"${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};apps;/"
"${CMAKE_CURRENT_BINARY_DIR};${CMAKE_PROJECT_NAME};docs;/"
)

empty default component name is displayed as 'Unspecified'

I'm trying to make two packages using cmake 2.8.12: the first one contains a shared library, the second one contains headers files. Apparently, I want two packages with names libname and libname-dev respectively, so I used command install with no specified component for the shared library and the same command with COMPONENT dev for the headers files. Before this I had defined an empty default component name. So I have a code as follows:
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "")
install(TARGETS libname DESTINATION /usr/local/lib)
install(FILES ${header_files} DESTINATION /usr/local/include COMPONENT dev)
But as a result, despite the empty default component name libname-Unspecified and libname-dev are generated. I find this behavior quite weird, because it seems I have no way to define two packages with previously described names. Are there any ideas how to do this in any other way?
In case of debian:
Give your main component some temporary name, e.g. "runtime".
install(TARGETS my-target
COMPONENT runtime
DESTINATION ${INSTALLDIR}
)
Then remove the postfixed component name as follows:
set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${CPACK_PACKAGE_NAME}")
Might work with other generators, too if they provide something equivalent to "CPACK_DEBIAN_RUNTIME_PACKAGE_NAME".