> ... running on a second language...
Sorry I cannot understand what it means. But something tells me that it might be irrelevant.
Wix# is a WiX based MSI authoring solution. But not WXS building tool. Thus wxs is considered to be an intermediate building step only. Thus the specific elements and layout (e.g. elements order) are irrelevant as long as the output msi file produced correctly. That is why Wix# is completely removing from user view bunch of XML definitions that can be auto generated insted manually defined by user. Component element is handled this way. The component Id and Guid auto-generation algorithm is based on component content (e.g. File element id/name). This algorithm can change from time to time to address certain id allocation issues. For example there were reports about potential duplication of component Id so the algorithm had to be changed to ensure uniqueness of the allocated Ids. But this in no way affected building the final msi so there should be no problems for users.
Thus my question is: "What is exactly the problem that you are trying to solve?" It seems like you have no problems with building msi. Is it correct?
Anyway, if for whatever reason you want to overwrite the component id allocation you can do it by providing an explicit ID/GUID via WixEntity attributes as demonstrated below:
It will produce this WXS:
It will work but to be honest it will defete the whole purpose of Wix#.
Sorry I cannot understand what it means. But something tells me that it might be irrelevant.
Wix# is a WiX based MSI authoring solution. But not WXS building tool. Thus wxs is considered to be an intermediate building step only. Thus the specific elements and layout (e.g. elements order) are irrelevant as long as the output msi file produced correctly. That is why Wix# is completely removing from user view bunch of XML definitions that can be auto generated insted manually defined by user. Component element is handled this way. The component Id and Guid auto-generation algorithm is based on component content (e.g. File element id/name). This algorithm can change from time to time to address certain id allocation issues. For example there were reports about potential duplication of component Id so the algorithm had to be changed to ensure uniqueness of the allocated Ids. But this in no way affected building the final msi so there should be no problems for users.
Thus my question is: "What is exactly the problem that you are trying to solve?" It seems like you have no problems with building msi. Is it correct?
Anyway, if for whatever reason you want to overwrite the component id allocation you can do it by providing an explicit ID/GUID via WixEntity attributes as demonstrated below:
new Dir(@"%ProgramFiles%\My Company\My Product", new File("setup.cs") { AttributesDefinition = "Component:Id=MyComId;Component:Guid=ffffffff-ffff-4544-b2b6-960518a0ecba" }),
<ComponentId="MyComId"Guid="ffffffff-ffff-4544-b2b6-960518a0ecba"><FileId="setup.cs"Source="setup.cs"/></Component>