【发布时间】:2020-05-12 14:06:08
【问题描述】:
在这个question的回复中解释了如何在csproj中设置InternalsVisibleTo。
我认为这也适用于CLSCompliant:
<ItemGroup>
<AssemblyAttribute Include="System.CLSCompliant">
<_Parameter1>true</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
但不是! MSBuild 抱怨true 无法从string 转换为bool:
> dotnet build
Microsoft (R) Build Engine version 16.4.0+e901037fe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 418.35 ms for C:\Users\coder\OneDrive\Projects\pickall\src\PickAll.Sample\PickAll.Sample.csproj.
Restore completed in 418.33 ms for C:\Users\coder\OneDrive\Projects\pickall\src\PickAll.Specs\PickAll.Specs.csproj.
Restore completed in 418.33 ms for C:\Users\coder\OneDrive\Projects\pickall\src\PickAll\PickAll.csproj.
obj\Debug\netstandard2.0\PickAll.AssemblyInfo.cs(14,32): error CS1503: Argument 1: cannot convert from 'string' to 'bool' [C:\Users\coder\OneDrive\Projects\pickall\src\PickAll\PickAll.csproj]
obj\Debug\net461\PickAll.AssemblyInfo.cs(14,32): error CS1503: Argument 1: cannot convert from 'string' to 'bool' [C:\Users\coder\OneDrive\Projects\pickall\src\PickAll\PickAll.csproj]
Build FAILED.
obj\Debug\netstandard2.0\PickAll.AssemblyInfo.cs(14,32): error CS1503: Argument 1: cannot convert from 'string' to 'bool' [C:\Users\coder\OneDrive\Projects\pickall\src\PickAll\PickAll.csproj]
obj\Debug\net461\PickAll.AssemblyInfo.cs(14,32): error CS1503: Argument 1: cannot convert from 'string' to 'bool' [C:\Users\coder\OneDrive\Projects\pickall\src\PickAll\PickAll.csproj]
0 Warning(s)
2 Error(s)
Time Elapsed 00:00:18.37
有没有办法在_Parameter1 标签内正确写入布尔文字?
【问题讨论】:
-
你只展示了你所做工作的一半——你还没有展示你尝试与项目文件一起使用的 C# 代码。
-
项目为:github.com/gsscoder/pickall。如果我通过代码设置
CLSCompliant,编译成功。如果不是来自 OmniSharp VSCode 扩展,我不会收到警告。它对引用 AngleSharp 的代码不满意。我想是因为它没有标记为CLSCompliant(true)。 -
项目链接不如minimal reproducible example在问题中有用。 (我还建议您暂时将您的机器设置为英文,以便您可以发布英文错误消息。)
-
嗨,@JonSkeet。我已编辑问题以 English 发布 MSBuild 输出。 (说实话,我不知道我以前为什么不这样做,我讨厌在其他语言中使用 UI)。我还使用修改后的 csproj 创建了一个gist。其余的存储库可以从 GitHub 克隆。如果您还需要什么,请告诉我。感谢您的宝贵时间!
-
"可以从 GitHub 克隆存储库的其余部分。"现在,是的。不一定在10年后,这个问题可能仍然存在。或者在 10 年后它可能看起来完全不同。毫无疑问,只是演示此问题所需的代码更多。为了使这个问题对试图回答的人以及阅读问题以便以后从中受益的人尽可能有用,请在问题中添加minimal reproducible example。