首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Tip】如何让引用的dll随附的xml注释文档、pdb调试库等文件不出现在项目输出目录中

项目输出目录(bin/debug|release)中经常是这个样子: main.exe main.pdb a.dll a.xml b.dll b.pdb b.xml ......其中xml是同名dll的注释文档,pdb是调试库。我们最终应该只想要exe和dll,除了手工删,我知道的有两招,可以让项目生成后,xml和pdb不会出现: 1、利用项目【生成事件】。...x*.xml 有个问题,对web项目没用,就是本地bin目录中是没了,但服务器上的bin目录会有。...我猜测web项目的发布动作并不是先生成在本地bin,完了再拷过去,而是有可能先生成在一个临时目录,完了再从临时目录分别拷到bin和远端,所以只删bin中的无济于事,关键是删临时目录,我猜测是obj目录,...需要说明,项目自身的pdb和xml是否生成,正确是在【项目\属性\生成】中进行设置。生成事件法可以作用到项目自身的相关文件,但Allow...元素法不会,它只对所引用的程序集相关文件有效。 -文毕-

1.6K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET Core跨平台的奥秘:复用之殇

    App.exe后会在控制台上得到如下图所示的输出结果。...其实Framework 2.0、3.0和3.5不仅仅共享相同的运行时(CLR 2.0),对于提供基础类型的核心程序集mscorlib.dll也是共享的,下图输出的版本信息已经说明了这一点。...现在我们看看.NET Framework 4.0(CLR 4.0)环境下运行同一个应用程序(App.exe)是否会有不同的输出结果。...,我们在控制台应用App中定义了如下一段程序,它负责将Foobar类型当前所在程序集的名称输出到控制台上。...比如说所有的目标框架都包含一个核心的程序集mscorlib.dll,虽然定义其中的类型及其成员在各个目标框架不尽相同,但是它们之间肯定存在交集,微软针对不同的目标框架组合将这些交集提取出来并定义在一系列同名程序集中

    1.3K80

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    Console类(用于控制台输入输出等)、Socket系列类(对tcp协议抽象的接口)、File文件系列类(对文件目录等操作系统资源的一些操作)、Encoding类(字符流的编码)等.../out选项, 所以会默认输出在与csc同一目录下名为demo.exe的文件。...现在CLR开始搜索程序集aa,首先它会从demo.exe控制台的同一目录(也就是D:\Demo\Debug\)中查找程序集aa,搜索文件名为aa.dll的文件,如果没找到就在该目录下以程序集名称为目录的目录中查找...故而每当我们通过VS编译器对项目右键重新生成项目(重新编译)时,VS都会将引用的程序集给复制一份到项目bin\输出目录Debug文件夹下,我们可以通过VS中对引用的程序集右键属性-复制本地 True/Flase...,如调换a方法和b方法的地址) 优化代码(相当于csc中的/optimize,优化IL代码让调试难以进行,优化JIT代码) 输出路径(程序集输出目录,可选择填写相对路径目录或绝对路径目录) XML文档文件

    4.6K30

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    Console类(用于控制台输入输出等)、Socket系列类(对tcp协议抽象的接口)、File文件系列类(对文件目录等操作系统资源的一些操作)、Encoding类(字符流的编码)等 这些类,都属于BCL..., 所以会默认输出在与csc同一目录下名为demo.exe的文件。...现在CLR开始搜索程序集aa,首先它会从demo.exe控制台的同一目录(也就是D:\Demo\Debug\)中查找程序集aa,搜索文件名为aa.dll的文件,如果没找到就在该目录下以程序集名称为目录的目录中查找...故而每当我们通过VS编译器对项目右键重新生成项目(重新编译)时,VS都会将引用的程序集给复制一份到项目bin\输出目录Debug文件夹下,我们可以通过VS中对引用的程序集右键属性-复制本地 True/Flase...,如调换a方法和b方法的地址) 优化代码(相当于csc中的/optimize,优化IL代码让调试难以进行,优化JIT代码) 输出路径(程序集输出目录,可选择填写相对路径目录或绝对路径目录) XML文档文件

    2.8K63

    “前.NET Core时代”如何实现跨平台代码重用 ——程序集重用

    包含在元数据中针对外部程序集的描述是由编译时引用的程序集决定的[1],引用程序集的名称(包含文件名、版本、语言文化和签名的公钥令牌)会直接体现在当前程序集的元数据中。...现在我们直接运行这个程序,会在控制台上得到如下所示的输出结果,可以看出.NET Framework 3.5(CLR 2.0)环境下的这两个类型定义在程序集System.Core.dll中。...通过如下所示的输出结果我们可以看出当.NET Framework从3.5升级到4.0的时候,将原本定义在程序集System.Core.dll中的部分类型转移到了程序集mscorelib.dll之中。...这个演示的场景如上图所示:代表应用的App.exe在编译的时候引用了代表框架的程序集Lib.dll,具体使用的是定义其中的类型Foobar,框架进行升级之后新增了一个程序集Lib2.dll,原来定义在Lib.dll...比如说所有的.NET Framework平台都包含一个核心的程序集mscorelib.dll,虽然定义其中的类型及其成员在各个.NET Framework平台不尽相同,但是它们之间肯定存在交集,微软针对不同的

    1.2K80

    九、将cs文件快速的转换成可执行文件和响应文件(配置编译开关的文件)

    "Hello World"的功能,该应用程序中引用到的系统类型都来自于MSCorLib.dll文件,简言之,该应用程序定义了一个类型,该类型使用到了其他公司提供的类型....下面通过命令行来快速将该文件生成为可执行的文件 第一步:打开命令行,输入以下命令,定位到csc.exe文件所在目录中(Win10下) cd C:\Windows\Microsoft.NET\Framework64...、/t(target):exe 生成的文件是Win32控制台应用程序类型 4、C:\Users\zc\Desktop\Program.cs 输入文件的位置 5、/r(reference):MSCorLib.dll...编译文件时需要引用的程序集 因为Console类型使框架定义的类型,所以必须指定其所在的dll文件,所以添加了/r(reference):MSCorLib.dll开关,告诉编译器在MSCorLib.dll...中查找引用的外部类型.

    1.3K70

    dotnet 命令

    每个命令定义自己的选项和参数。 所有命令都支持 --help 选项,用于打印有关如何使用命令的简短文档。 它运行 .NET 应用程序。 指定应用程序 .dll 文件的路径以运行应用程序。...运行应用程序即意味着找到并执行入口点,对于控制台应用,入口点是 Main 方法。 例如,dotnet myapp.dll 运行 myapp 应用程序。...此选项将重写应用程序 .runtimeconfig.json 文件中第一个框架引用的版本。 这意味着,仅当只有一个框架引用时,它才会按预期方式工作。...如果应用程序具有多个框架引用,则使用此选项可能会导致错误。 dotnet 命令 常规 命令 函数 dotnet build 生成 .NET 应用程序。...示例 创建新的 .NET 控制台应用程序: dotnet new console 生成给定目录中的项目及其依赖项: dotnet build 运行应用程序: dotnet myapp.dll 另请参阅

    1.6K20

    卷入.NET WEB

    Framework才存在需要的利用链,换成.net Core就没有那些利用链的class了),相当于切换Java中的JDK版本: 添加引用 引用相当于Java中给项目添加lib包: 右键引用,.../),以管理员身份查找运行,查找这个dll文件(这个才是运行时使用的dll文件): 附加到进程调试 将上面那个dll拖到dnspy中,可以看到上面使用了这个dll的进程是w3wp.exe,进程id...区别,文档中说:         所有三个 ASP.NET 框架都基于 .NET Framework,并共享 .NET 和 ASP.NET 的核心功能。...例如,所有三个框架都提供基于成员身份的登录安全模型,并且所有三个框架都共享相同的设施来管理请求、处理会话等,这些都是核心 ASP.NET 功能的一部分。...此外,这三个框架并不完全独立,选择一个并不排除使用另一个。由于这些框架可以共存于同一个 Web 应用程序中,因此使用不同框架编写的应用程序的各个组件并不罕见。

    97540

    从以前的项目格式迁移到 VS2017 新项目格式 必须删除必须修改添加文件项目引用引用包删除多余文件输入注释多个框架使用条件判断迁移 WPF 项目

    Universal Windows Platform uap [uap10.0] uap10.0 [win10] [netcore50] 使用条件判断 因为在多个框架,存在一些框架不能引用的库,而在一些框架需要这些库...,如 ValueTuple ,就需要在引用的时候添加条件 添加条件可以使用这样的代码Condition=" '$(TargetFramework)' == 'net40' 把 net40 修改为你希望的框架就在指定的框架引用库...ItemGroup> 如果通过条件还可以在某些框架引用或不引用某些文件。...看一下缺少了哪些引用再自己添加。 稍微解释一下上面的代码,在一开始使用的 OutputType 是告诉 VisualStudio 生成一个窗口应用程序。...因为默认生成的是 dll ,而在本文上面也告诉大家设置控制台输出是使用下面代码 Exe 对于 WPF 是窗口程序,如果使用了上面的设置,就会在启动的过程先出现控制台窗口

    3.8K20

    在 .NET Core 上使用 Microsoft XML 序列化程序生成器

    在 .NET Core 控制台应用程序中使用 Microsoft XML 序列化程序生成器 以下说明将展示如何在 .NET Core 控制台应用程序中使用 XML 序列化程序生成器。...创建 .NET Core 控制台应用程序 打开命令提示符,创建一个名为“MyApp”的文件夹。...仍从生成了应用的 MyApp 目录中进行操作。 在文本编辑器中打开 MyApp.csproj。...在控制台窗口中键入以下命令: dotnet run 备注 dotnet run 调用 dotnet build 来确保已生成要生成的目标,然后调用 dotnet dll> 运行目标应用程序...如果一切顺利,则会在输出文件夹中生成名为“MyApp.XmlSerializers.dll”的程序集。 祝贺你! 你刚才已完成: 创建 .NET Core 应用。

    2K40

    .NET Core部署中你不了解的框架依赖与独立部署

    SCD 包括一个可执行文件(如 Windows 平台上名为 app 的应用程序的 app.exe),它是特定于平台的 .NET Core 主机的重命名版本,还包括一个 .dll 文件(如 app.dll...不包含第三方依赖的框架依赖的部署 为项目创建一个目录,并将其设为当前目录 在命令行中,键入 dotnet new console 以创建新的 C# 控制台项目 在编辑器中打开 Program.cs 文件...生成的文件位于名为“publish”的目录中,该目录位于项目的 bin 目录的子目录中。 与应用程序的文件一起,发布过程将发出包含应用调试信息的程序数据库 (.pdb) 文件。...当为具有此类第三方依赖项的应用程序创建 FDD 时,已发布的输出会针对每个本机依赖项支持(存在于 NuGet 包中)的运行时标识符 (RID) 包含一个文件夹。...在命令栏行中,键入 dotnet new console,在该目录中创建新的 C# 控制台项目 在编辑器中打开 Program.cs 文件,然后使用下列代码替换自动生成的代码。

    2K20

    框架升级后某个类型所在程序集发生转移,应用还能正常运行吗?

    我们利用Visual Studio创建一个针对.NET Framework 3.5的控制台应用,并编写如下一端简单的程序输出两个常用的类型(Function和TimeZoneInfo)所在程序集的名称...现在我们直接运行这个程序,会在控制台上得到如下所示的输出结果,可以看出.NET Framework 3.5(CLR 2.0)环境下的这两个类型定义在程序集System.Core.dll中。...现在我们对该程序的配置文件(App.config)作如下的修改,其目的在于采用CLR 4.0来运行该程序。再次运行该程序集之后,我们会在控制台上得到不一样的输出结果。...通过如下所示的输出结果我们可以看出当.NET Framework从3.5升级到4.0的时候,将原本定义在程序集System.Core.dll中的部分类型转移到了程序集mscorelib.dll之中。...这个演示的场景如上图所示:代表应用的App.exe在编译的时候引用了代表框架的程序集Lib.dll,具体使用的是定义其中的类型Foobar,框架进行升级之后新增了一个程序集Lib2.dll,原来定义在Lib.dll

    56260

    如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

    -- 使用 .NET Framework 4.7 和 .NET Core 2.0。.../ // 用来放引用程序集 .dll,文档注释 .xml 和符号文件 .pdb 的 + lib/ // 用来放那些与平台相关的 .dll/.pdb/.pri 的 + runtimes/ // 任意种类的文件...,在这个文件夹中的文件会在编译时拷贝到输出目录(保持文件夹结构) + content/ // 这里放 .props 和 .targets 文件,会自动被 NuGet 导入,成为项目的一部分(要求文件名与包名相同...如果指定为单个框架,则自动导入的是 build 目录下的;如果指定为多个框架,则自动导入的是 buildMultiTargeting 目录下的。...于是我们希望在调试状态下,dll 能够指向输出目录下。于是我们修改 targets 文件添加配置: <!

    1.4K10

    dotnet test

    自变量 PROJECT | SOLUTION | DIRECTORY | DLL 指向测试项目的路径。 解决方案的路径。 包含项目或解决方案的目录的路径。 测试项目 .dll 文件的路径。...只检查后缀为 .TestAdapter.dll 的 .dll 文件。 如果未指定,则会搜索测试 .dll 的目录。 --arch 指定目标体系结构。...对于具有多个目标框架的项目(通过 TargetFrameworks 属性),在指定此选项时还需要定义 --framework。 dotnet test 始终从输出目录运行测试。...可以使用 AppDomain.BaseDirectory 以使用输出目录中的测试资产。 --os 指定目标操作系统 (OS)。..." 在当前目录中运行项目中的测试,并将详细的测试结果记录到控制台: dotnet test --logger "console;verbosity=detailed" 在当前目录下的项目中运行测试,并报告在测试主机发生故障时正在进行的测试

    3.1K20

    .Net 框架

    如果创建一个VB.NET类型的项目,实现和上面C#项目完全一样的功能,那么编译后生成的文件有什么区别? 编写控制台应用程序,将字符输出到屏幕,需要调用Console.WriteLine()方法。...那么采用C#编译器生成的文件又是什么呢?现在需要引入程序集这个概念:在.NET框架下,类似C#这样的高级语言经过编译后生成的结果文件被称做程序集,其后缀名是.dll(类库)或.exe(可执行程序)。...解决方案中的“引用”文件夹 在创建项目时并没有做任何额外的操作,那么这些引用显然是在创建项目时自动添加的。...从直觉上来看,前面以.exe为后缀的控制台应用程序就是一个直接的可执行文件,因为在双击它后,它确实会运行起来。...这个库文件是.NET框架的核心组件之一,注意它也不是一个程序集。MsCorEE.dll位于C:\%SystemRoot%\System32\系统文件夹下所有安装了.NET框架的计算机都会有这个文件。

    1.9K21

    NetBeauty2:让你的.NET项目输出目录更清爽

    在.NET项目开发中,随着项目复杂性的增加,依赖的dll文件也会逐渐增多。这往往导致输出目录混乱,不便于管理和部署。...而NetBeauty2开源项目正是为了解决这一问题而生,它能够帮助开发者在独立发布.NET项目时,将.NET运行时和依赖的dll文件移动到指定的目录,从而让输出目录更加干净、清爽。...通过NetBeauty2,开发者可以轻松地将.NET运行时和依赖的dll文件移动到指定的目录,使得项目的输出目录更加清晰、易于管理。...项目仓库地址:https://github.com/nulastudio/NetBeauty2[1] 下图为优化后输出目录(.NET运行时及引用依赖库移到libraries目录,目录名可配置): 下图为极限优化后输出目录...此外,Chromely还支持多种编程语言和框架,如C#、.NET Core、ASP.NET Core等,这使得开发者可以选择他们最熟悉的技术栈来构建应用程序。

    18010

    如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    :创建一个项目,用来写工具的核心逻辑 为了方便制作跨平台的 NuGet 工具,新建项目时我们优先选用 .NET Core 控制台项目。...事实上你也可以拿去安装,不过最终的效果只是加了一个毫无作用的引用程序集而已(事实上就是把你写的程序作为普通 dll 引用了)。...如果指定为单个框架,则自动导入的是 build 目录下的;如果指定为多个框架,则自动导入的是 buildMultiTargeting 目录下的。...我们要让我们写的 .NET Core 工具程序能够工作,所以我们将生成的输出程序放到 tools 目录下。...于是我们希望在调试状态下,dll 能够指向输出目录下。于是我们修改 targets 文件添加配置: <!

    1K20

    .NET 可移植性分析器

    可移植性分析器作为 Visual Studio Extension 提供,用于分析每个项目的一个程序集;也可以作为 ApiPort 控制台应用提供,用于按指定文件或目录分析程序集。...如果目标是使自己的库能够在所有 .NET 支持的平台上运行,则建议使用此对象。 ASP.NET Core:在 .NET Core 基础上构建的现代 Web 框架。...还可以使用 ApiPort 控制台应用程序,可从 ApiPort 存储库进行下载。...在该位置选择项目的可执行文件或 DLL。 还可以使用 ApiPort 控制台应用。 键入以下命令即可分析当前目录:ApiPort.exe analyze -f ....如果使用的是 ApiPort 控制台应用,.NET 可移植性报表将以指定的格式保存为文件。 默认位于当前目录中的 Excel 文件 (.xlsx) 中。

    1.2K40
    领券