<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"><TITLE>Assembly Versioning</TITLE><META NAME="GENERATOR" CONTENT="OpenOffice.org 2.0 (Win32)"><META NAME="AUTHOR" CONTENT="Daniel Grunwald"><META NAME="CREATED" CONTENT="20051129;18411803"></HEAD><BODY LANG="en-US" DIR="LTR"><H1>Assembly Versioning in SharpDevelop</H1><H2>How the versions are set</H2><P>The assemblyInfo.cs files are updated by the tool"UpdateAssemblyInfo". UpdateAssemblyInforuns as pre-compile target and always sets the number in GlobalAssemblyInfo.csto the number of commits since a hard-coded start commit (<code>const string BaseCommit</code>). That number is displayedin the splash screen, error dialog and about dialog.It is also used as assembly version.</P><p>The revision number is retrieved by running "git rev-list" and counting the number of output lines.When this doesn't work (e.g. in an exported tree like the source code download on the build server; or git not present in PATH),the content of the file src/REVISION is used as revision number.When even this fails, the revision '0' is used.</p><H2>Publisher Policy</H2><P>While the assembly versioning schema is not so important insideSharpDevelop, it is important for 3rd party addins because the mainlibraries like ICSharpCode.Core are strong-named. Normally, anassembly compiled against a strong-named assembly can only be usedwith exactly the version of the library it was compiled with.</P><P>This means if a 3rd-party addin was compiled against version2.1.0.a, it cannot bind to version 2.0.0.b or 2.0.1.c; even if itwould run without problems. Therefore, SharpDevelop.exe.configcontains binding redirects for the strong-named libraries that addinswould want to reference.</P><P>The binding redirects always redirect requests of a version in the rangefrom some past version containing large breaking changes to the current version.We try to avoid such changes after the first release candidate of a SharpDevelop version,so after the release of SharpDevelop x.y RC1, all future SharpDevelop x.y.*.* versions will bein large parts binary compatible.<br>For example, SharpDevevelop 2.1.0.1708 uses this redirection:</P><pre><bindingRedirect oldVersion="2.1.0.1661-2.1.0.1708" newVersion="2.1.0.1708"/></pre><P>That means if you want to release a 3rd-party AddIn (AddIn that is not shipped with SharpDevelop),compile it against the oldest SharpDevelop version you want your AddIn to run with.<br>An AddIn compiled against 2.1.0.1800 will run with 2.1.0.1801 (and hopefully even with 2.1.23.45678),but an AddIn compiled against 2.1.0.1801 will fail to load in SharpDevelop 2.1.0.1800.</P><P>Additionally, your AddIn should include a <code><Dependency></code> in its.addin file to indicate which SharpDevelop version it is intended for.This way, users trying to install the AddIn in an incompatible SharpDevelop version will be warned about theincompatibility, instead of getting an obscure error message.</P><pre><Manifest><Identity name = "YourAddInName"/><Dependency addin="SharpDevelop" version="5.0"/></Manifest></pre></BODY></HTML>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。