SharpDevelop Setup Build Server Rules
-------------------------------------
All new .msi files are treated as major upgrades on the build server:
http://msdn.microsoft.com/library/en-us/msi/setup/major_upgrades.asp
1) Package code always changes for a new revision.
2) Product version is updated with the revision number.
3) Product code changed for a new revision.
4) Msi filename changed on each build. It includes the SharpDevelop version and revision.
Guid generation
---------------
The Guid generation is a pre-build step. This step runs the UpdateSetupInfo
tool. This tool creates new guids for the product code and the package code. It
also reads the current revision number and updates the installation. All this
information is stored in the SharpDevelop.Setup.wixproj.user file which is
generated each time when run from the build server. The Wix setup documents
have preprocessor variables $(var) that map to MSBuild properties. These MSBuild
properties are stored in the SharpDevelop.Setup.wixproj.user file.
The SharpDevelop.Setup.wixproj.user file is in the repository since but it is not
committed on each build. Therefore the Product Code guid is not stored anywhere
apart from the .msi itself. This maybe us a problem. The Upgrade Code is the
important guid and that is in the main Setup.wxs file and should not be changed.
It will be changed for SharpDevelop 3.0.
The UpdateSetupInfo tool is not used when building the SharpDevelop.Setup project,
this prevents us recreating Guids each time when building the project
from inside SharpDevelop. The buildSetup.bat does use the tool. The build server
also uses the tool.
The UpdateSetupInfo tool uses a template file SharpDevelop.Setup.wixproj.user.template
which is stored in the repository and has placeholders for the guids and revision
number.
If the build server generates two installer packages with the same revision number
but different Product code guids then the user can install two instances of
SharpDevelop 2.1 on their machine which we do not want. The UpdateSetupInfo
tool hopefully prevents this by not updating the product code guid if the
revision number has not changed. The last used revision number is stored
in the Setup\bin\REVISION file.
Why major instead of minor?
---------------------------
It allows us to make large changes to the installer, completely restructuring the
features, components, and renaming the .msi filename. Just renaming the .msi filename on
its own means the product code guid has to change. However the main reason is that
to use a minor upgrade so it upgrades the existing installation you have to use a command
line like:
msiexec /i SharpDevelop.msi REINSTALL=ALL REINSTALLMODE=vomus
Otherwise you just get a message informing you that there is an existing installation.
A major upgrade is more user friendly and will not need such a command line, it should
install just by double clicking the .msi.
SharpDevelop Setup Rules
------------------------
1) Each assembly (.exe, .dll) added gets its own Component. This includes any files that
logically belong to it (e.g. .config, .addin), but not any assemblies it uses (.exe, .dll).
For an added assembly the File element should look like:
<File Id="SharpDevelopExeId"
Name="SharpDev.exe"
LongName="SharpDevelop.exe"
Source="..\..\bin\SharpDevelop.exe"
Assembly=".net"
AssemblyApplication="SharpDevelopExeId"
AssemblyManifest="SharpDevelopExeId"
KeyPath="yes"/>
Note that the Id is typically just the filename, but the in the example I have
emphasised that AssemblyApplication and AssemblyManifest refer to the file id.
Windows Installer References
----------------------------
Windows Installer has a lot of rules that need to be followed when creating
setup packages. The main ones to look at the rules for adding/removing components.
The documentation is a bit confusing, some parts say that you need to generate
a new Component Guid when you add/remove a resource (file, registry, etc)
to/from a component. Other parts say that with Windows Installer v2 you can
add/remove resources without needing to regenerate a new guid.
SharpDevelop's installer will not allow side-by-side installations of
SharpDevelop 2.1. Each new installer will be able to upgrade all previous versions
from 2.1.0 upwards. Disallowing side-by-side installations should prevent any
problems if component Guids are not altered when they should be (see
What Happens if the Component Rules are Broken?)
SharpDevelop component rules:
1) Never the same resource into two different components.
2) All resources in a component must be installed into the same directory.
3) When adding a new file to an existing directory put it inside its own new
component. That is if a previous version of the installer has been released.
If you're adding a completely new addin this does not apply, each .exe and .dll
should be in its own component, but other files can be grouped.
4) Removing a file. According to the docs:
"you must also change the name or target location every resource in the component."
This is not a problem for .exe and .dlls since they should be in their own
component so you just remove the entire component. If you may remove
the resource at some point in the future, put it into its own component.
If you have to remove a file from an existing component change its guid and
hope nothing breaks.
Setup Package Validation
------------------------
Also use Orca (Part of the Windows 2003 Platform SDK) to test validate the
created msi file. Do not ignore any errors. Warnings need to be understood
before being ignored. ICE33 warnings can be ignored - see the Setup.wxs
file for more details.
http://msdn.microsoft.com/library/en-us/msi/setup/organizing_applications_into_components.asp
http://msdn.microsoft.com/library/en-us/msi/setup/changing_the_component_code.asp
http://msdn.microsoft.com/library/en-us/msi/setup/what_happens_if_the_component_rules_are_broken.asp
http://msdn.microsoft.com/library/en-us/msi/setup/defining_installer_components.asp
http://msdn.microsoft.com/library/en-us/msi/setup/assemblies.asp
http://msdn.microsoft.com/library/en-us/msi/setup/patching_and_upgrades.asp
http://msdn.microsoft.com/library/en-us/msi/setup/changing_the_product_code.asp
http://msdn.microsoft.com/library/en-us/msi/setup/minor_upgrades.asp
Rob Mensching also has some information about the component rules on his blog:
Windows Installer Components Introduction
http://blogs.msdn.com/robmen/archive/2003/10/04/56479.aspx
Component Rules 101
http://blogs.msdn.com/robmen/archive/2003/10/18/56497.aspx
没有合适的资源?快使用搜索试试~ 我知道了~
SharpDevelop_2.2.1.2648_Source.zip
共4241个文件
cs:3109个
csproj:109个
png:99个
需积分: 10 5 下载量 67 浏览量
2011-07-29
18:00:05
上传
评论
收藏 13.33MB ZIP 举报
温馨提示
SharpDevelop 是一个用于制作C#或者VB.NET的项目而设计的一个编辑器,同时,这个编辑器本身就是使用C#开发的,而且公开了全部源代码,因此这个工具本身也是学习C#以及软件开发规范的一个很好材料。 SharpDevelop 这个轻型的开发工具支持多种程序语言,包括C#、java以及VB.NET,同时还支持多种语言界面,象任何爱好者开发的工具一样。这个编辑器的界面风格类似于Office XP以及VS.NET,这个编辑器可以支持书写C#, ASP.NET, ADO.NET, XML, HTML 等多种代码,支持基于项目或者是文件的开发,可以对C#, HTML, ASP, ASP.NET, VBscript, VB.NET, XML 提供彩色语法显示支持,同时还可以把彩色的代码输出为HTML格式文件。支持丰富的代码模版以及外接插件。 C#中的SharpDevelop就如Java中的Eclipse.
资源推荐
资源详情
资源评论
收起资源包目录
SharpDevelop_2.2.1.2648_Source.zip (4241个子文件)
ICSharpCode.SharpDevelop.addin 112KB
FormsDesigner.addin 18KB
XmlEditor.addin 13KB
WixBinding.addin 12KB
SdaBase.addin 11KB
ICSharpCode.Svn.addin 9KB
SharpQuery.addin 8KB
BooBinding.addin 7KB
UnitTesting.addin 7KB
NAnt.addin 7KB
Hornung.ResourceToolkit.addin 6KB
VBNetBinding.addin 5KB
CodeCoverage.addin 5KB
CSharpBinding.addin 4KB
ICSharpCode.ReportDesigner.addin 4KB
HtmlHelp2.addin 4KB
FiletypeRegisterer.addin 4KB
Debugger.AddIn.addin 3KB
Base.addin 3KB
AddInManager.addin 3KB
AddInManager.addin 3KB
ComponentInspector.addin 3KB
ResourceEditor.addin 3KB
ILAsmBinding.addin 3KB
MonoAddIn.addin 2KB
CodeAnalysis.addin 2KB
PInvoke.addin 2KB
LineCounter.addin 2KB
SharpServerTools.addin 1KB
StartPage.addin 1KB
Debugger.BooInterpreter.addin 1KB
HtmlHelp2.DynamicHelp.addin 1001B
IconEditorAddIn.addin 938B
CodonCreation.addin 925B
RichTextEditor.addin 875B
SettingsEditor.addin 837B
Boo.Interpreter.addin 830B
SharpServerTools.addin 769B
ImageViewer.addin 734B
HighlightingEditor.addin 727B
StringResourceToolAddIn.addin 688B
CustomView.addin 625B
RegExpTk.addin 583B
AddInScout.addin 562B
AlternateEditor.addin 485B
HtmlPreview.addin 442B
CustomPad.addin 425B
VBNET.ATG 82KB
cs.ATG 81KB
Coco.atg 19KB
PostInstallTasks.bat 529B
prepareRelease.bat 426B
PreUninstallTasks.bat 424B
gen.bat 373B
CreateMsHelpAssembly.bat 335B
import.bat 239B
buildSetup.bat 224B
buildwin32resource.bat 224B
releasebuild.bat 196B
clean.bat 173B
debugbuild.bat 164B
unregister.bat 38B
register.bat 36B
dlgbmp.bmp 464KB
dlgbmp.bmp 152KB
default-dialog.bmp 36KB
bannrbmp.bmp 29KB
DockIndicator.PaneDiamond.Top.bmp 23KB
DockIndicator.PaneDiamond.HotSpot.bmp 23KB
DockIndicator.PaneDiamond.Left.bmp 23KB
DockIndicator.PaneDiamond.Fill.bmp 23KB
DockIndicator.PaneDiamond.Right.bmp 23KB
DockIndicator.PaneDiamond.Bottom.bmp 23KB
DockIndicator.PaneDiamond.bmp 23KB
DockIndicator.PanelFill.bmp 3KB
DockIndicator.PanelFill.Active.bmp 3KB
DockIndicator.PanelTop.bmp 3KB
DockIndicator.PanelTop.Active.bmp 3KB
DockIndicator.PanelRight.Active.bmp 3KB
DockIndicator.PanelLeft.bmp 3KB
DockIndicator.PanelRight.bmp 3KB
DockIndicator.PanelLeft.Active.bmp 3KB
DockIndicator.PanelBottom.Active.bmp 3KB
DockIndicator.PanelBottom.bmp 3KB
default-banner.bmp 2KB
info.bmp 1KB
TextEditorControl.bmp 824B
MdiClientController.bmp 824B
DockPanel.bmp 822B
exclamic.bmp 766B
HtmlHelp2.16x16.Print.bmp 687B
ArrowDown.bmp 370B
ArrowUp.bmp 370B
up.bmp 318B
new.bmp 318B
Favorites.16x16.Delete.bmp 246B
Favorites.16x16.MoveDown.bmp 246B
Favorites.16x16.MoveUp.bmp 246B
Favorites.16x16.Rename.bmp 246B
Mouse.bmp 134B
共 4241 条
- 1
- 2
- 3
- 4
- 5
- 6
- 43
资源评论
hxiupeng
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功