这是一个流行的问题,我将提供答案。
2 回答
打字稿版本 0.9.1.1
Typescript 0.9.5+ 依赖于 Microsoft.VisualStudio.Shell.11.0.dll。因此,这些说明将不再更新。
以下内容用于教育目的。请遵守所有许可和重新分发要求。对于以前版本的 TypeScript,请参阅此答案的编辑历史记录。
- 关闭 Visual Studio
- 安装Wix 工具集
- 下载TypeScript for Visual Studio 2012版本 0.9.1.1 并将安装程序可执行文件放在其自己的临时目录中。
- 在临时目录中打开命令窗口。
- 执行命令
"%wix%\bin\dark.exe" -x .\TypeScriptSetup TypeScriptSetup.0.9.1.1.exe
- 转到目录 .\TypeScriptSetup\AttachedContainer\packages\TypeScript_CORE
执行以下命令
IF NOT DEFINED ProgramFiles(x86) SET ProgramFiles(x86)=%ProgramFiles% SET VSDir=%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE SET Devenv=%VSDir%\devenv.exe
对于 Windows 7 用户
执行命令:
TypeScript_CORE.msi /l* log.txt VS11_EXTENSIONS_DIR="%VSDir%\Extensions\Microsoft" VS11_NEWSCRIPTITEMS_DIR="%VSDir%\NewFileItems" VS11DEVENV="%Devenv%" VS11_TARGETSINSTALLFOLDER="%ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v10.0\TypeScript"
对于 Windows Vista 用户
您将需要使用 Wix 构建一个新的安装程序
- 执行命令
"%wix%\bin\dark.exe" -x .\TypeScript_CORE TypeScript_Core.msi
- 可选择将 TypeScript_CORE.wxs 复制到 TypeScript_CORE.wxs.bak(建议)
- 编辑 TypeScript_CORE.wxs 替换下面显示的行。为避免可能的版权问题以及由于 StackOverflow 的大小限制,整个更新文件尚未发布。我能做的最好的就是发布差异报告。第一列中的数字是原始文件的行号。第二列中的数字是编辑文件中的行号。由于删除的行,编辑文件中的行号会更低。
-------------------------------------------------- ---------------------- 3 <Product Id="{5A908D89-0620-4CC0-A8B8-2CB4A7B0772C}" Codepage="1252" Language="1033" Manufacturer="Microsoft Corporation" Name="TypeScript for Microsoft® Visual Studio® 2012" UpgradeCode="{ F15B62A0-4478-4924-876A-867617EC4B8C}" 版本="0.9.1.1"> 4 <Package Comments="此安装程序数据库包含安装 TypeScript for Microsoft® Visual Studio® 2012 所需的逻辑和数据。" Compressed="yes" Description="TypeScript for Microsoft® Visual Studio® 2012" InstallerVersion="500" Languages="1033" Manufacturer="Microsoft Corporation" Platform="x86" /> 3 <Product Id="{5A908D89-0620-4CC0-A8B8-2CB4A7B0772C}" Codepage="1252" Language="1033" Manufacturer="Microsoft Corporation" Name="TypeScript for Microsoft® Visual Studio® 2010" UpgradeCode="{ F15B62A0-4478-4924-876A-867617EC4B8C}" 版本="0.9.1.1"> 4 <Package Comments="此安装程序数据库包含安装 TypeScript for Microsoft® Visual Studio® 2010 所需的逻辑和数据。" Compressed="yes" Description="TypeScript for Microsoft® Visual Studio® 2010" InstallerVersion="405" Languages="1033" Manufacturer="Microsoft Corporation" Platform="x86" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 15(删除) <CustomAction Id="VS11_CAUpdateConfig" Property="VS11DEVENV" ExeCommand="/updateConfiguration" Return="ignore" Execute="deferred" Impersonate="no" /> 16(删除) <CustomAction Id="VWD11_CAUpdateConfig" Property="VWD11EXPRESS" ExeCommand="/updateConfiguration" Return="ignore" Execute="deferred" Impersonate="no" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 222 <目录 ID="MSBuild_Microsoft_VisualStudio_11" 名称="v11.0"> 220 <目录 ID="MSBuild_Microsoft_VisualStudio_11" 名称="v10.0"> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 293 <Feature Id="TypeScriptInstallation" Level="1" Title="TypeScript for Microsoft&® Visual Studio® 2012 Setup"> 291 <Feature Id="TypeScriptInstallation" Level="1" Title="TypeScript for Microsoft&® Visual Studio® 2010 设置"> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 427(删除)<Property Id="WixPdbPath" Value="D:\nightly\release-0.9.1.1\srcSetup\wix\outs\x86ret\enu\cooked\TypeScript_CORE_net.wixpdb" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 663 <ProgressText Action="CAIsVSRunning">检查 Microsoft® Visual Studio® 2012 是否正在运行</ProgressText> 660 <ProgressText Action="CAIsVSRunning">检查 Microsoft® Visual Studio® 2010 是否正在运行</ProgressText> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 712 <Control Id="VSRunningStatus" Type="Text" X="25" Y="110" Width="320" Height="110" Text="Microsoft® Visual Studio® 2012 正在运行,建议您在继续 [ProductName] 安装程序之前将其关闭。” TabSkip="是" /> 709 <Control Id="VSRunningStatus" Type="Text" X="25" Y="110" Width="320" Height="110" Text="Microsoft® Visual Studio® 2010 正在运行,建议您在继续 [ProductName] 安装程序之前将其关闭。” TabSkip="是" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 739(delete) <Control Id="LaunchScreenAgreeLine" Type="Hyperlink" X="25" Y="138" Width="320" Height="14" Text="你必须同意<a href="[ EulaURLName]">许可条款</a>在你可以安装 TypeScript 之前"TabSkip="yes"> 740(删除)<Condition Action="hide">已安装</Condition> 741(删除)</控制> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 799 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="1" /> 793 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="2" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 803(删除)<自定义操作=“VS11_CAUpdateConfig”序列=“6598”>VS11DEVENV</自定义> 804(删除) <自定义操作="VWD11_CAUpdateConfig" Sequence="6599">VWD11EXPRESS</自定义> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 830 <InstallFinalize Sequence="6600" /> 第822章 -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 834 <自定义操作="SystemFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="1" /> 826 <自定义操作="SystemFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="2" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 860 <自定义操作="SystemFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="3" /> 852 <自定义操作="SystemFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="4" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 874 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="3" /> 866 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="4" /> -------------------------------------------------- ---------------------- -------------------------------------------------- ---------------------- 889 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="3" /> 881 <自定义操作="WindowsFolder_x86_VC.F9D0B380_EB85_31D4_96AC_C6CB40086A55" 序列="4" /> -------------------------------------------------- ----------------------
- 执行命令
"%wix%\bin\candle.exe" TypeScript_CORE.wxs
- 执行命令
"%wix%\bin\light.exe" -o TypescriptVista TypeScript_CORE.wixobj
- 执行命令
TypeScriptVista.msi /l* log.txt VS11_EXTENSIONS_DIR="%VSDir%\Extensions\Microsoft" VS11_NEWSCRIPTITEMS_DIR="%VSDir%\NewFileItems" VS11DEVENV="%Devenv%"
配置文件
现有项目需要将以下元素添加到项目文件的底部。请注意在 BeforeBuild 元素之前添加的元素。
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptTarget>ES3</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>-->
杂项
在 TypeScript 不再出现在“程序和功能”列表中之前,可能需要进行两次卸载。首次卸载后,按 F5 刷新应用程序列表。卸载后某些文件可能仍然存在。
TypeScript_CORE.msi 中有调试器路径的其他自定义属性。我假设此时 VS 2010 与脚本调试回不同的源文件不兼容。但是,其他人可能希望尝试使其正常工作。其他自定义属性名称是:VS11_DEBUGGER_DIR、VS11_DEBUGGER_X64_DIR 和 VS11_REMOTEDEBUGGER_DIR
有额外的自定义属性可以使用 Visual Web Developer 或 Visual Web Developer Express 中的一个或两个进行安装。我没有能力测试这些产品的安装。TypeScript_CORE.msi 文件中与此安装相关的自定义属性为:VWD11_EXTENSIONS_DIR、VWDExpress11 和 VWD11_NEWSCRIPTITEMS_DIR
功能性
- 新的项目类型和项目类型可用。
- 工具\选项菜单下的 TextEditor\TypeScript 部分。
- .ts 文件的智能感知编辑。
- .js 文件是在构建或保存时构建的(当在文本编辑器选项中设置了构建保存时)。
- .js 文件在解决方案资源管理器中显示为 .ts 文件的子文件,但保存在与 .ts 文件相同的路径中。(v 0.9.1.1 默认不包含项目中的 .js 文件)
- 发布时不包含 .ts 文件,仅包含 .js 文件。
- .ts 文件有自己的图标,并与 Visual Studio 相关联。
修订记录
- TypeScript 0.9.1.1 版更新
- 针对 TypeScript 版本 0.8.3.1 更新
- 修复了为 0.8.3 复制 MSBUILD 目录的缺失指令
截图
遵循Richard Collette 的 Windows 7 说明后,安装程序应产生以下错误,然后完成:
无效的命令行。未知开关:updateConfiguration。使用:devenv [解决方案文件 | 项目文件 | anyfile.ext] [开关]
如果这导致任何问题,运行以下命令可能会有所帮助
"%Devenv%" /Setup