39

这是一个流行的问题,我将提供答案。

4

2 回答 2

44

打字稿版本 0.9.1.1

Typescript 0.9.5+ 依赖于 Microsoft.VisualStudio.Shell.11.0.dll。因此,这些说明将不再更新。

以下内容用于教育目的。请遵守所有许可和重新分发要求。对于以前版本的 TypeScript,请参阅此答案的编辑历史记录。

  1. 关闭 Visual Studio
  2. 安装Wix 工具集
  3. 下载TypeScript for Visual Studio 2012版本 0.9.1.1 并将安装程序可执行文件放在其自己的临时目录中。
  4. 在临时目录中打开命令窗口。
  5. 执行命令"%wix%\bin\dark.exe" -x .\TypeScriptSetup TypeScriptSetup.0.9.1.1.exe
  6. 转到目录 .\TypeScriptSetup\AttachedContainer\packages\TypeScript_CORE
  7. 执行以下命令

    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 构建一个新的安装程序

  1. 执行命令"%wix%\bin\dark.exe" -x .\TypeScript_CORE TypeScript_Core.msi
  2. 可选择将 TypeScript_CORE.wxs 复制到 TypeScript_CORE.wxs.bak(建议)
  3. 编辑 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" />
-------------------------------------------------- ----------------------
  1. 执行命令"%wix%\bin\candle.exe" TypeScript_CORE.wxs
  2. 执行命令"%wix%\bin\light.exe" -o TypescriptVista TypeScript_CORE.wixobj
  3. 执行命令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 目录的缺失指令

截图

项目模板截图 编辑器截图 解决方案资源管理器屏幕截图 TypeScript 选项截图 文件图标截图

于 2013-01-24T20:52:17.093 回答
3

遵循Richard Collette 的 Windows 7 说明后,安装程序应产生以下错误,然后完成:

无效的命令行。未知开关:updateConfiguration。使用:devenv [解决方案文件 | 项目文件 | anyfile.ext] [开关]

如果这导致任何问题,运行以下命令可能会有所帮助

"%Devenv%" /Setup
于 2013-11-11T07:18:48.513 回答