I am writing a NAnt script for a scripted build of a VS solution.  It is
three DLLs compiled with /clr, one written in C# and two C++.  The main dll,
a C++ project, references the other two DLLs which are strong-named and
placed in the GAC by a merge module.  I cannot use <solution> due to
dependencies being unresolved (and a desire to get away from .sln files).

What occurs is the csharp.dll is added to MsiAssembly and MsiAssemblyName
tables in the msm file with proper entries, but the cplusplus.dll file does
not.  When I manually enter information into these tables the cplusplus.dll
is added to the GAC as appropriate.

It is interesting to note that the cplusplus.dll is not versioned, and I
have tried using AssemblyInfo attributes and linking with /version.  When
the manually modified msm file is installed, the GAC gets the version of
cplusplus.dll as 1.0.* (one revision less than the csharp.dll, i.e.
1.0.2537.17748 if the other is 1.0.2537.17749).

Below is my msm block.  What is the criteria for a file to be added to the
MsiAssembly table?  Also, it was necessary for me to remove the
AgreementText control, as it was thrown in by default and made the msm file
fail "Merge Module Validation Suite" in Orca.  Any tips, pointers, thoughts,
solutions?



        <target name="gacmsm" verbose="true">
                <msm id="MergeModule.##########################" version="1.0"
output="${mergeMod}" sourcedir="${jniTempDir}" verbose="true">
                        <summaryinformation>
                                <title>title</title>
                                <subject>DLL assemblies</subject>
                                <author>author</author>
                            <comments>This merge module GACs the fingerprint 
DLLs 'csharp.dll'
and 'cplusplus.dll'</comments>  
                        </summaryinformation>
                        <components>
                                <component name="C_cplusplus"
id="{########-####-#########-############}" attr="0" directory="TARGETDIR"
feature="F_GACDLLs" installassembliestogac="true" >
                                        <key file="cplusplus.dll"/>
                                        <fileset basedir="${jniTempDir}">
                                                <include name="cplusplus.dll" />
                                        </fileset>
                                        <!--<forceid file="cplusplus.dll" 
id="_cplusplusfileguid"
version="1.0.300.7890" language="0" installtogac="true"/>   this line makes
no difference whether it is added to the tables, and it seems the version
only defines the reference to the GAC entry for uninstall -->
                                </component>
                                <component name="C_csharpdll"
id="{########-####-#########-############}" attr="0" directory="TARGETDIR"
feature="F_GACDLLs" installassembliestogac="true" >
                                        <key file="csharp.dll"/>
                                        <fileset basedir="${jniTempDir}">
                                                <include name="csharp.dll"/>
                                        </fileset>
                                </component>
                        </components>
                        <controls>
                                <control name="AgreementText" 
dialog="LicenseAgreementDlg"
type="ScrollableText" x="20" y="60" width="330" height="120" attr="7"
remove="true"/>
                        </controls>
                </msm>
        </target>

-- 
View this message in context: 
http://www.nabble.com/NantContrib-MSM-Task-not-fully-populating-MsiAssembly-table-tf3488663.html#a9742056
Sent from the NAnt - Users mailing list archive at Nabble.com.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to