-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgac.htm
91 lines (79 loc) · 2.73 KB
/
gac.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8" />
<title>Installing strongnamed assemblies into GAC</title>
</head>
<body><a href="https://github.com/ArsenShnurkov/gentoo-mono-handbook"><img alt="Fork me on GitHub" id="forkme" src="images/forkme.png" align="right" width="100" /></a>
<table><tr><td valign="top">
<h1>Installing strongnamed assemblies into GAC</h1>
</td><td valign="top">
<a href="index.htm">Gentoo Mono Handbook</a>
<br />
<a href="how-to-make-signed-assembly.htm">How to make signed assembly?</a>
<br />
<a href="InternalsVisibleTo.htm">InternalsVisibleTo</a>
<br />
<table><tr><td>$D</td><td>Path to the temporary install directory. For example: "${PORTAGE_BUILDDIR}/image"</td></table>
<a href="https://devmanual.gentoo.org/ebuild-writing/functions/pkg_preinst/">pkg_preinst</a>
</td></tr></table>
egacinstall is from <a href="https://github.com/gentoo/dotnet/blob/master/eclass/gac.eclass">gac.eclass</a>
<br />
<br />
see also <a href="./pc-files.htm">.pc-files</a> and <a href="pkg-config/index.htm">pkg-config</a>
<h2>Latest approach</h2>
<pre>
src_install() {
insinto "/gac"
doins "$(output_filename)"
}
pkg_preinst()
{
echo mv "${D}/gac/${ASSEMBLY_NAME}.dll" "${T}/${ASSEMBLY_NAME}.dll"
mv "${D}/gac/${ASSEMBLY_NAME}.dll" "${T}/${ASSEMBLY_NAME}.dll" || die
echo rm -rf "${D}/gac"
rm -rf "${D}/gac" || die
}
pkg_postinst()
{
egacadd "${T}/${ASSEMBLY_NAME}.dll"
rm "${T}/${ASSEMBLY_NAME}.dll" || die
}
pkg_prerm()
{
egacdel "${ASSEMBLY_NAME}, Version=2.1.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756"
}
</pre>
<!--
<h2>Variant of installation with <strong>egacadd</strong> and <strong>egacdel</strong></h2>
<pre>src_install() {
if use debug; then
DIR="Debug"
else
DIR="Release"
fi
insinto "/usr/lib/mono/${<a href="https://github.com/gentoo/dotnet/blob/118bf4f185f884cec522c066dd148df870897961/eclass/dotnet.eclass#L45">EBUILD_FRAMEWORK</a>}"
doins "${NAME}/bin/${DIR}/${NAME}.dll"
if use developer; then
doins "${NAME}/bin/${DIR}/${NAME}.dll.mdb"
fi
einstall_pc_file "${PN}" "${PV}" "${NAME}"
}
pkg_preinst()
{
egacadd "${D}/usr/lib/mono/${EBUILD_FRAMEWORK}/${NAME}.dll"
rm "${D}/usr/lib/mono/${EBUILD_FRAMEWORK}/${NAME}.dll" || die
if use developer; then
rm "${D}/usr/lib/mono/${EBUILD_FRAMEWORK}/${NAME}.dll.mdb"
fi
rmdir "${D}/usr/lib/mono/${EBUILD_FRAMEWORK}" || die
rmdir "${D}/usr/lib/mono" || die
rmdir "${D}/usr/lib" || die
}
pkg_prerm()
{
egacdel "${NAME}"
}</pre>
-->
</body>
</html>