.net core 是否正在编译项程序集的MSBuild条件
我的目标是向任何“条目”程序集自动添加另一个PackageReference。通常它是定义了Main()的,但没有任何类库 我尝试将类似的内容添加到我的目录中。Build.props:.net core 是否正在编译项程序集的MSBuild条件,.net-core,msbuild,.net Core,Msbuild,我的目标是向任何“条目”程序集自动添加另一个PackageReference。通常它是定义了Main()的,但没有任何类库 我尝试将类似的内容添加到我的目录中。Build.props: <Project> <ItemGroup Condition=" '$(IS_THE_ENTRY_ASSEMBLY)' == 'true' "> <PackageReference Include="Serilog.Sinks.Seq&quo
<Project>
<ItemGroup Condition=" '$(IS_THE_ENTRY_ASSEMBLY)' == 'true' ">
<PackageReference Include="Serilog.Sinks.Seq" Version="..." />
</ItemGroup>
</Project>
我找不到任何MSBuild属性可以告诉我程序集是否为条目程序集,因此另一个可行的条件是“此程序集是否引用程序包Serilog.Sinks.File?”。为此,我尝试了以下各种形式:
<ItemGroup Condition=" '%(PackageReference.Include)' == 'Serilog.Sinks.File' ">
<ItemGroup Condition=" '%(PackageReference)' == 'Serilog.Sinks.File' ">
<ItemGroup Condition=" '@(PackageReference)' == 'Serilog.Sinks.File' ">
但是,我似乎也找不到这样做的正确语法
解决这个问题的任何一种方法都是受欢迎的。关于如何编译代码有四种可能性:
exe
,winexe
,库
,模块
(可以找到)。通过项目文件中的
设置
可用于控制台应用程序。可用于窗口应用程序,但启动时控制台窗口打开exe
可用于窗口应用程序。没有创建控制台winexe
用于库。无法直接运行库
不确定如何使用模块
Main
函数能够运行,因此我们可以检查OutputType
是否设置为其中一项
如果项目文件中未设置OutputType
,则默认为Library
不确定字符串比较是区分大小写还是不区分大小写Directory.Build.props用于公共属性。在这种情况下,您希望将属性应用于特定项目。为什么不在必选项目中写这一行呢?@JL0PD我可以(现在我已经做了),但我想知道是否有一种方法可以在一个解决方案中的多个项目的一个位置自动完成这一操作。我需要的实际逻辑还检查环境变量,最好避免在任何地方重复它。