是否可以将Microsoft.NET.GenerateAssemblyInfo.targets与非Sdk样式的项目一起使



我成功地让它在本地工作:

<Target Name="InitializeSourceControlInformation" />
<UsingTask TaskName="GetAssemblyVersion" AssemblyFile="$(MSBuildSDKsPath)Microsoft.NET.Sdktoolsnet46Microsoft.NET.Build.Tasks.dll" />
<Import Project="$(MSBuildSDKsPath)Microsoft.NET.SdkbuildMicrosoft.NET.GenerateAssemblyInfo.targets" />

但它在CI服务器上失败了,该服务器只有VS 2017 BuiltTools。总的来说,它感觉粗糙而脆弱。

但是,我仍然想使用这些目标,因为它们很棒。有没有一种强有力的方法来使用它们?它们似乎不依赖于Sdk领域中的任何其他东西,除了一个自定义任务。

编辑1

我们的构建服务器确实有VS 2017构建工具。但开发商都有VS 2017和VS 2015。如果必须修复Silverlight错误,则需要后者。是的,我们仍然有Silverlight。

p.S.

请不要建议迁移到.NET Core。我会迁移到Sdk风格的项目,但还有另一个问题——是否可以使用Sdk风格的项目编写VS扩展?

我实际上为此创建了一个MSBuild Sdk,因此相同的逻辑可以用于经典项目(经典的asp.net、.net框架WPF应用程序等(:https://github.com/dasMulli/AssemblyInfoGenerationSdk.也许这正是你所需要的。如果对你不起作用,就解决悬而未决的问题。

这是通过从.NET SDK中复制一些(MIT开源(代码并将其打包到MSBuild SDK中来实现的。

相关内容

最新更新