Kob*_*obi 16 .net c# msbuild build
我想开始使用Microsoft.Net.Compilers我们的构建服务器简化工作.但是,我只能通过将包添加到所有项目中来使其在每个项目级别上工作.
这是有问题的,因为必须将包添加到每个新创建的项目中.这可能导致代码在开发人员的机器上编译(具有最新的编译器),但在构建服务器上会失败.我们有很多项目(超过100个),所以这是比较常见的.
有没有Microsoft.Net.Compilers在解决方案级别使用的方法?
如果没有支持的方式,是否有一个命令行工具,我不必在构建服务器上安装?或者,这不是这些工具的预期用途吗?
Mar*_*ich 16
如果在VS 2017(更新1,构建数> = 15.1.*)中,您可以使用MSBuild集成PackageReference机制,而不是packages.config之前仅适用于.net核心和.net标准项目类型的机制.请参阅PackageReference文档以及宣布支持的NuGet博客文章,尤其是"不是.NET Core的其他项目类型怎么样?"部分.
我们的想法是从安装软件包并将其添加到packages.config进行恢复,以便仅在csproj文件中指定MSBuild项目.这可以在VS中为新项目设置:
(动画来自上面链接的NuGet博客文章)
MSBuild 15的一个新功能是它支持自动包含目录层次结构中具有特殊名称的文件.这些都是Directory.Build.props和Directory.Build.targets这将得到包括前(道具)和之后(目标)你的项目文件的内容(有同一个错误.targets多目标的项目版本,其中一个解决办法是即将发布).
如果Directory.Build.props在解决方案级别创建具有以下内容的文件,则其下面的目录层次结构中的所有项目将继承其内容,并且您可以强制NuGet依赖项到每个项目:
<Project>
<ItemGroup>
<PackageReference Include="Microsoft.Net.Compilers" Version="2.1.0"/>
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4013 次 |
| 最近记录: |