我们正在编写一个应用程序,它将使用T4生成Flex / Actionscript以编译为SWF。我们希望将此应用程序分发给不会拥有VS的用户。我已经搜索并搜索过,并且无法在任何地方找到任何关于使用您的应用重新分发microsoft.visualstudio.texttemplating.dll的信息,除了这个代码plex项目(http://customtemplating.codeplex.com/)允许托管您自己的T4构建器(使用和确实包含了microsoft.visualstudio.texttemplating.dll的副本。
那么,有没有人确切知道或者可以告诉我在哪里可以找到关于在我们的应用程序中包含此dll的信息?
提前谢谢! 伊利亚安德
答案 0 :(得分:5)
我为MonoDevelop IDE编写了一个干净的逆向工程T4引擎实现。它是开源的,根据许可的MIT / X11许可证授权,因此您可以自由地将引擎嵌入您的应用程序或重新分发它。还有一个TextTransform.exe命令行工具的实现,以及Mono.TextTemplating命名空间中的一些API,以帮助托管引擎。
现在唯一真正缺少的功能是自定义指令提供程序 - 但欢迎使用补丁: - )
您可以从Mono SVN中的monodevelop / main / src / addins / TextTemplating获取代码。
答案 1 :(得分:4)
我通过CodePlex向Tim Cools发送了自定义模板项目的电子邮件,他通过这个帖子(http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/1ab0bf3f-2810-4adf-bf75-900b98dee8e2)向MS代表发送了同样的问题。这是回复:
“如果用户安装了VS2008或更高版本,他将安装dll。没有可再发行组件。如果他在VS2005上,那么他需要安装DSL运行时可再发行组件,因为它不包含在VS2005中但是这确实需要他安装VS2005(正如你所提到的线程中明确说明的那样)。
所以简短的回答是所有用户必须安装VS才能使用此DLL。“
Tim后来继续说“但实际上有一个包含dll的可再发行组件:Microsoft Visual Studio 2008 Shell(集成模式)Redistributable Package [链接删除 - 新用户限制]但与dll(84 kb)相比,它太大了(315.9 MB)。“有了这个,我同意。
然而,最终的答案似乎在于VS 2010 Beta的T4,如下所述:[链接已删除 - 新用户限制]
“[T]这里已经为VS 2010的Beta1中的T4提供了一些新功能,特别是能够将预处理模板编译成代码而不依赖于T4运行时。您可以了解更多关于他的信息。在我的博客[删除链接 - 新用户限制]和[链接已删除 - 新用户限制]“
所以,这就是我们可能会采用的方式。预处理模板,使它们没有任何依赖关系。我只想与大家分享我发现的东西。
答案 2 :(得分:1)
我很确定这是不允许的。如果Microsoft允许重新分发程序包,则会在其中包含redist.txt或将其放在redist文件夹中。
答案 3 :(得分:0)
在VS2010中,他们已将T4所依赖的依赖项移至外部类。你能用VS2010的Beta来创建依赖项吗?
答案 4 :(得分:0)
我有类似的问题,但涉及构建服务器。
为了需要在构建服务器上运行文本生成的其他人(从法律角度来看不是重新分发方案),Microsoft recommends to copy the files manually:
构建服务器中的文本转换
如果构建服务器在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中。所以我最终做了: