如何从visual studio 2013中禁用mscorlib.dll?

时间:2014-10-29 04:45:08

标签: c# visual-studio msbuild

我正在尝试在visual studio 2013中使用自定义标准库,但似乎无法弄明白。使用/ nostdlib在命令行上编译没有问题,尽管我希望能够在IDE中利用intellisense。除了我的自定义corelib之外,我删除了所有引用,并且由于mscorlib有两种变体,我遇到了相互矛盾的代码错误。

VS文档说:

  

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

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

  2.   
  3. 点击构建属性页。

  4.   
  5. 点击高级按钮。

  6.   
  7. 修改不要引用mscorlib.dll 属性。

  8.   

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

2 个答案:

答案 0 :(得分:7)

这是一个老问题,但实际上 - 虽然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>

答案 1 :(得分:0)

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

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