2

我们正在编写一个应用程序,它将使用 T4 生成 Flex/Actionscript 以编译成 SWF。我们想将此应用分发给没有 VS 的用户。我已经搜索和搜索,但在任何地方都找不到任何关于使用您的应用程序重新分发 microsoft.visualstudio.texttemplating.dll 的信息,除了允许托管您自己的 T4的这个 code plex 项目 ( http://customtemplating.codeplex.com/ ) builder(它使用并且确实包含 microsoft.visualstudio.texttemplating.dll 的副本)。

那么,是否有人确定或可以告诉我在哪里可以找到有关在我们的应用程序中包含此 dll 的信息?

先感谢您!伊利亚

4

5 回答 5

5

我为 MonoDevelop IDE 编写了一个 T4 引擎的完全逆向工程实现。它是开源的,在宽松的 MIT/X11 许可下获得许可,因此您可以自由地将引擎嵌入到您的应用程序中或重新分发它。还有一个 TextTransform.exe 命令行工具的实现,以及 Mono.TextTemplating 命名空间中的一些 API,以帮助托管引擎。

目前唯一真正缺少的功能是自定义指令提供程序 - 但欢迎使用此补丁 :-)

您可以从 Mono SVN 中的 monodevelop/main/src/addins/TextTemplating 获取代码。

于 2009-09-08T17:53:30.977 回答
4

我通过电子邮件向 CodePlex 上自定义模板项目的 Tim Cools 发送电子邮件,他从该线程(http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/1ab0bf3f-2810-4adf-bf75- 900b98dee8e2)有同样的问题。这是回应:

“如果用户安装了 VS2008 或更高版本,他将安装 dll。没有可再发行组件。如果他在 VS2005 上,那么他需要安装 DSL 运行时可再发行组件,因为它不包含在 VS2005 框中。但是这确实需要他安装 VS2005(正如您所指的线程中明确说明的那样)。

所以简短的回答是所有用户都必须安装 VS 才能使用这个 DLL。”

蒂姆后来继续说“但实际上有一个包含 dll 的可再发行组件:Microsoft Visual Studio 2008 Shell(集成模式)可再发行组件包 [链接已删除 - 新用户限制] 但相比之下它太大了(315.9 MB) dll (84 kb)。”

我同意这一点。

然而,最终答案似乎在于 VS 2010 Beta 的 T4,如下所述:[链接已删除 - 新用户限制]

“[T] 在 VS 2010 的 Beta1 中,T4 已经有了一些新功能,特别是能够拥有一个预处理模板,该模板可以编译成不依赖于 T4 运行时的代码。你可以在我的博客上了解更多关于他的信息在 [链接已删除 - 新用户限制] 和 [链接已删除 - 新用户限制]”

所以,这就是我们可能要做的。预处理模板,使它们没有任何依赖关系。我只是想和大家分享我发现的东西。

于 2009-08-27T12:42:02.790 回答
1

我很确定这是不允许的。如果 Microsoft 允许重新分发一个包,他们会在其中包含一个 redist.txt 或将它放在一个 redist 文件夹中。

于 2009-08-26T00:43:23.390 回答
0

在 VS2010 中,他们将 T4 所依赖的依赖项移至外部类。您可以使用 VS2010 的 Beta 版来创建依赖项吗?

于 2009-08-26T00:54:36.393 回答
0

我有一个类似的问题,但涉及构建服务器。

为了其他需要在构建服务器上运行文本生成(从法律角度来看不是重新分发场景),Microsoft 建议手动复制文件

构建服务器中的文本转换

如果构建服务器在未安装 Visual Studio 的计算机上运行,​​则应将以下文件从安装了 Visual Studio SDK 的计算机复制到构建计算机:

\Program Files\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0\

    Microsoft.VisualStudio.TextTemplating.11.0.dll
    Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll
    Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll

\Program Files\MSBuild\Microsoft\VisualStudio\TextTemplating\v11.0\

    Microsoft.VisualStudio.TextTemplating.Sdk.Host.11.0.dll

\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\

    Microsoft.VisualStudio.TextTemplating.Modeling.11.0.dll

更新:最终,我在 GAC 中找到了这些文件,但在其他任何地方都没有。安装 Visual Studio 2010 SDK(在构建服务器上)后,它们出现在C:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0但不在该机器上的 GAC 中。所以我最终做了:

  1. 在构建服务器上安装 VS2010 SDK
  2. 手动在 GAC 中注册程序集
于 2013-05-20T19:26:41.017 回答