We are currently evaluating VS2010 and have updated our project VS2008 C ++ / CLI in the new .vcxproj format. I noticed that a certain property that we set in the project settings did not receive the proper translation. In the section "Configuration Properties" → "Managed Resources" → "Logical Resource Name" we used (in VS2008) the parameter:
$(IntDir)\$(RootNamespace).$(InputName).resources
which indicated that all .resx files should have compiled into
OurLib.SomeForm.resources
inside the assembly. (part of the debugging is removed during assembly)
According to MSDN, the macro $ (InputName) no longer exists and should be replaced with% (Filename). However, when translating the above line to replace these macros, it seems to never expand. The second .resx file that he is trying to compile receives "LINK: fatal error LNK1316: duplicate managed resource name" Debug \ OurLib.% (Filename) .resources ". This indicates that style% macros are not expanding here, at least least in this particular property.
If we did not set anything in this property, the default behavior seems to add a subdirectory as a prefix, for example:
OurLib.Forms.SomeForm.resources
Forms , .resx. , .resx . .resx - (aka..\OtherLib\Forms\SomeForm2.resx), .
, , Forms Designer :
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(SomeForm::typeid));
.resources .
, , , , , , . - % ?