tom-englert/Wax

DevExpress Satellite assembly Not included !

Closed this issue · 14 comments

这些语言包文件 在项目中不可见,但是msbuild把他们放在了输出目录!能考虑把他们也能加到wix项目中吗?
These language pack files are not visible in the project, but msbuild put them in the output directory! Can you consider adding them to the Wix project?

What dev-express package do I need to test this?

@maikebing: can you make a build of branch https://github.com/tom-englert/Wax/tree/Issue%2329 and see if this works also in your environment?

First of all thank you for everything you have done, I tested your new code! It still can not get DevExpress.Utils.v16.1.UI.resources.dll such a file. At the same time, I also search the google, hoping to help you! I am sorry, but I have not found any useful information.

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 The ComponentGroup/@Directory attribute's value, 'TODO: unknown directory de', is not a legal identifier. Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or periods (.). Every identifier must begin with either a letter or an underscore. SetupProject1 D:\Users\Silas\Documents\Visual Studio 2015\Projects\DXApplication6\SetupProject1\Product.wxs 64

	<Feature Id="ProductFeature" Title="SetupProject1" Level="1">
			<ComponentGroupRef Id="ProductComponents" />
			<ComponentGroupRef Id="TODO: unknown directory de_files" />
			<ComponentGroupRef Id="TODO: unknown directory ja_files" />
			<ComponentGroupRef Id="TODO: unknown directory ru_files" />
			<ComponentGroupRef Id="TODO: unknown directory zh-Hans_files" />
			<ComponentGroupRef Id="TODO: unknown directory es_files" />
		</Feature>
	</Product>

Can you add to the directory map?

Can I reproduce the problem using the project you sent on #28 thread ?

yes!

Go !

I've found a solution, but I need @tom-englert advice on it.

In MainViewModel.cs, GenerateDirectoryMappings method, you exclude outputs which are references :

var directories = projectOutputs .Where(projectOutput => !projectOutput.IsReference) .Select(projectOutput => Path.GetDirectoryName(projectOutput.TargetName)) .Distinct(StringComparer.OrdinalIgnoreCase) .OrderBy(item => item) .DefaultIfEmpty(string.Empty) .ToArray();

If I comment the "Where" clause, resources directories are detected, and resources files are placed into :
image

What is the reason of this clause ? Should I add it to my PR ?

I tried with a class library project as reference of the main assembly, and the reference is correctly detected in the main directory. Removing the Where clause doesn't create an unwanted directory mapping.

I push the fix in my PR.

Yes, I think this check was only needed because references had the full path as target name before.

However this should go into a separate PR, fixes should not be mixed up with new features.

Ok, I will make two new PRs so, after lunch.