【问题标题】:How to disable mscorlib.dll from within visual studio 2013?如何从 Visual Studio 2013 中禁用 mscorlib.dll?
【发布时间】:2014-10-29 04:45:07
【问题描述】:

我正在尝试在 Visual Studio 2013 中使用自定义标准库,但似乎无法弄清楚。尽管我希望能够利用 IDE 中的智能感知,但我在命令行上使用 /nostdlib 编译没有问题。我已经删除了除自定义 corelib 之外的所有引用,并且由于 mscorlib 有两种变体,我遇到了冲突的代码错误。

VS 文档说:

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的属性页面。

  2. 点击构建属性页面。

  3. 点击高级按钮。

  4. 修改不引用 mscorlib.dll 属性。

虽然情况似乎并非如此,因为此选项不存在。有谁知道如何在 vs2013 中禁用 mscorlib.dll?

【问题讨论】:

  • 它曾经在那里,但我刚刚检查了 VS Express,也看不到它......也许破解项目文件?也许它可以用便携式库来模拟?在 VS2010 中肯定仍然存在。
  • 好像不见了,我用VS 2013 Professional查了一下。我认为这是微软支持的一个案例。
  • 找到这个论坛帖子:social.msdn.microsoft.com/Forums/windowsapps/en-US/… - 也许手动将<NoStdLib>True</NoStdLib> 添加到您的项目文件会有所帮助?

标签: c# visual-studio msbuild


【解决方案1】:

这是一个老问题,但是,确实 - 虽然 UI 选项已经消失(或移动)并且文档至今仍然具有误导性,但您仍然可以通过将 <NoStdLib>True</NoStdLib> 添加到另一个附近的 .csproj 来复制效果高级设置中的选项:

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    ...
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <NoStdLib>True</NoStdLib>
    <TargetFrameworkProfile />
  </PropertyGroup>
...
</Project>

【讨论】:

  • 我想知道在 VS 2010 之后该选项在哪里消失了。很高兴您发布了。 NoStdLib 标签有效!
【解决方案2】:

要解决 Visual Studio 2017 中的相同问题,在 .csproj 文件中添加以下属性组声明(您可以从 Visual Studio 中卸载项目并右键单击并选择 Edit) 可以抑制编译器错误:

<PropertyGroup>
  <NoStdLib>true</NoStdLib>    
  <DisableHandlePackageFileConflicts>true</DisableHandlePackageFileConflicts>
</PropertyGroup>
...
<ItemGroup>
  <Reference Include="mscorlib">
  <HintPath>..\path to custom mscorlib.dll</HintPath>
</Reference>

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 2014-04-17
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多