相关疑难解决方法(0)

获取Visual Studio以在每个构建上运行T4模板

如何获得T4模板以在每次构建时生成其输出?就像现在一样,它只在我对模板进行更改时才重新生成它.

我发现了类似的其他问题:

Visual Studio中的T4转换和构建顺序(未答复)

如何在Visual Studio中构建t4文件?(答案不够详细[虽然仍然很复杂]甚至没有完全意义)

必须有一个更简单的方法来做到这一点!

msbuild tfs t4 visual-studio

159
推荐指数
12
解决办法
6万
查看次数

.Net Core项目中的TextTemplating目标

我最近将测试项目迁移到.NET Core 2.0.该测试项目使用文本模板生成一些重复的代码.之前的项目有一个构建目标,可以在构建之前生成所有T4模板.因此,生成的代码也不会签入VCS.

我在项目中使用了这个片段来确保构建模板:

<PropertyGroup>
  <!-- Default VisualStudioVersion to 15 (VS2017) -->
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
  <!-- Determinate VSToolsPath -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  <!-- Run T4 generation if there are outdated files -->
  <TransformOnBuild>True</TransformOnBuild>
  <TransformOutOfDateOnly>True</TransformOutOfDateOnly>
</PropertyGroup>
<!-- Import TextTemplating target -->
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />
Run Code Online (Sandbox Code Playgroud)

我的第一个方法是保留这个片段并将其复制到新的.NET Core项目文件中.

在Visual Studio中,这很有效,因为显然,VSToolsPath设置正确.但是,当我运行.NET Core SDK工具时dotnet test(例如我在构建服务器上),VSToolsPath映射到Program Files\dotnet\sdk\2.0.3那里,无法找到文本模板目标.

因为这不起作用,我也尝试简单地Microsoft.VisualStudio.TextTemplating从Nuget 安装包,但这有两个问题:

  1. 它没有正式支持.NET Core并安装.NET 4.6.1和
  2. Nuget似乎没有安装任何东西,所以我无法调整项目文件中的路径.

t4 .net-core visual-studio-2017

13
推荐指数
2
解决办法
902
查看次数

标签 统计

t4 ×2

.net-core ×1

msbuild ×1

tfs ×1

visual-studio ×1

visual-studio-2017 ×1