如果一个项目想要让其他某个指定的项目可以使用到 internal 的类或成员,可以通过标记 InternalsVisibleToAttribute 的方式实现 最简单的方法是新建一个 AssemblyInfo.cs ,只能被强签名的程序集可见 如果想要在 csproj 文件上面写,也可以,在 ItemGroup 添加下面代码 <ItemGroup> <AssemblyAttribute Include 生成,内容和刚才的 AssemblyInfo.cs 文件是差不多的 所以本质上是通过预编译创建 AssemblyInfo.cs 文件实现。 安装 NuGet 的方法是在 csproj 里面的添加下面代码 <ItemGroup> <PackageReference Include="Meziantou.MSBuild.InternalsVisibleTo 其实是通过 通过重写预定义<em>的</em> Target 来扩展 MSBuild / <em>Visual</em> <em>Studio</em> <em>的</em>编译过程 - walterlv <em>的</em>方法,类似如下代码实现 <Target Name="AddInternalsVisibleTo
尝试在本地从开始菜单打开开发命令提示符,或者从使用命令行调用本机的 VisualStudio 编译命令行 cmd> "C:\Program Files (x86)\Microsoft Visual Studio Visual Studio\2017\Enterprise\Common7\Tools\ 找到 LunchDevCmd.bat 文件 运行之后可以看到下面界面 > "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\LaunchDevCmd.bat" *********************** *********************************************** ** Visual Studio 2017 Developer Command Prompt v15.8.5 ************** C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise> 先进入项目所在的文件夹,也就是 sln 或
一键领取预热专享618元代金券,2核2G云服务器爆品秒杀低至18元!云产品首单低0.8折起,企业用户购买域名1元起…
通常我们的选择是 Visual Studio 自带的 Console App 模板,这个经典模板只有预设好的 csproj 文件和空荡荡的 Main 方法,偶尔还会附送一行 Console.WriteLine 也可以在 Visual Studio 2017 的 Extensions and Updates 中输入 C# Console App Boilerplate 搜索并安装: ? 安装完成后,通过 Visual Studio 再次新建 Project 时,就可以在 Visual C# 分类下找到 Console App Boilerplate 的两个新模板。 ? 此外,无论是 .NET Core 还是 .NET Framework 版本的 csproj 文件都采用了 MSBuild 15.0 新引入的 project SDK 格式。 它的使用方法非常简单,GitHub 项目的一页 README 便已阐述清楚,亦支持跨平台。 反之,如果仅仅想运行几行代码,又不愿等 Visual Studio 启动呢?
Visual Studio 是怎么让 csproj 中的内容正确显示出来的呢?更深入的,我能够自己扩展 csproj 的功能吗? 本文将直接从 csproj 文件格式的本质来看以上这些问题。 传统 csproj 文件中有大量的重复或者相似内容,只为 msbuild 和 Visual Studio 能够识别整个项目的属性和结构,以便正确编译项目。 这是我的地址:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.CSharp.targets 当 Visual Studio 打开项目时,它会解析里面所有的 Import 节点,确认应该引入的 .props 和 .targets 文件都引入了。 ——这只是 Visual Studio 做的事情。 在编译时,msbuild 或 Roslyn 还会重新做一遍上面的事情——毕竟这两个才是真正的编译器,可不是 Visual Studio 的一部分啊。
迁移普通 .NET Framework 类库的项目文件 目前只有基于 .NET Core 和 .NET Standard 的普通项目能够使用这种新的 csproj 文件。 第五步:删除 Properties 文件夹和里面的所有文件,因为这些信息已经被 csproj 文件记录并自动生成了。 然而我并不知道是否是因为旧版本的 Visual Studio 2017 不支持在新 csproj 中编译 XAML。 你 必须将 Visual Studio 升级到 15.8 以上的版本,否则WPF 或者 UWP 项目迁移成新项目之后,默认新建的 XAML 文件会不可见,每次都需要手工去 csproj 中删掉自动增加的错误的 to new csproj: Visual Studio 2017 upgrade guide Using the new .Csproj without .Net core · Issue #1688
当我们在敲这行文字的时候,Visual Studio的最新版本为2017(15.3)。顺便说一下,Visual Studio已经提供了Mac版本。 Visual Studio 2017提供了社区版(Community)、专业版(Professional)和企业版(Enterprise),其中社区版是免费的,专业版和企业版需要付费购买。 这个.csproj文件的结构并不是为一般的开发者设计的,我们也不会直接编辑这个文件,而是利用Visual Studio间接地修改它。 如果使用Visual Studio 2017来开发.NET Core应用,我们最常使用的是由IDE提供的可视化NuGet安装方式。 这个特性在Visual Studio 2017上做了进一步改进。
前几天微软发布Visual Studio 2017 RC版,第一时间下载安装并体验了一番,把我之前在Visual Studio 2015下面写的IP高精度定位网站升级到VS2017项目,在此期间遇到了点问题 ,就在这里开一篇文件,来统一写一下在使用2017的过程中遇到的问题及解决方法吧,该文章不定期的更新。 以下问题是在.Net Core项目下出现的+++ 1.类库的改变 在使用VS2015写.net core项目的时候,如果要新建类库,可以直接建.Net Core类库,之后在其他项目下调用,而在VS2017 此时,打开网站项目下的.csproj文件,添加如下代码: <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools .NET Core 1.0.1 <em>的</em>SDK,重<em>新</em>安装.NET Core 1.1.1 <em>的</em>SDK就可以了 以上。
我摘取了一些入门系列文章,也许你可以通过阅读这些来了解下: 理解 C# 项目 csproj 文件格式的本质和编译流程 迁移 csproj 文件到基于 Microsoft.NET.Sdk 创建基于 MSBuild 100 个坑 不可用的源 NuGet 可以指定多个包源。既可以在 Visual Studio 中配置,也可以在配置文件中配置。 ? ? <? 项目文件 Sdk 的来回切换 MSBuild 15.0 为项目文件的根节点 Project 带来了 Sdk 属性,也就是说 Visual Studio 2017 开始支持。 将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj 一文讲述了如何为项目文件添加 Sdk 属性,以便项目能够体验到最新的 Microsoft.NET.Sdk (我的 Visual Studio 版本 2017.7.4,Microsoft.NET.Sdk 版本 2.1.300。) 这时,把这两个文件重新在 csproj 中 Import 一次却能正常。
为 Visual Studio 使用通配符批量添加项目文件 发布于 2017-09-26 13:12 更新于 2018-01-15 15:52 Visual Studio 的项目文件其实是支持使用通配符的,尤其适合添加大量资源文件。 通常大家都不会关心 Visual Studio 的项目文件里是如何记录这个项目所包含的所有文件的,因为各位开发者们早已经习惯于右键添加文件或者拖拽文件进项目了。 但是,Visual Studio 提供的项目文件(*.csproj)其实是支持通配符的。 请阅读原文: https://walterlv.com/post/vs/2017/09/26/wildcards-in-vs-projects.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验
为 Visual Studio 使用通配符批量添加项目文件 发布于 2017-09-26 21:12 更新于 2018-12-14 01:54 Visual Studio 的项目文件其实是支持使用通配符的,尤其适合添加大量资源文件。 通常大家都不会关心 Visual Studio 的项目文件里是如何记录这个项目所包含的所有文件的,因为各位开发者们早已经习惯于右键添加文件或者拖拽文件进项目了。 但是,Visual Studio 提供的项目文件(*.csproj)其实是支持通配符的。 请阅读原文: https://blog.walterlv.com/post/vs/2017/09/26/wildcards-in-vs-projects.html ,以避免陈旧错误知识的误导
此后攻击者便会向安全研究人员分享了一个Visual Studio的项目工程文件,该项目文件明为一些漏洞的POC代码,暗则是包含了等待目标研究员编译执行来触发的恶意命令和代码。 在Lazarus组织中是利用Visual Studio进行利用的,那么我们来复现一下利用手法: 1.打开Visual Studio 2.新建一个项目 3.进入项目的属性 就可以看到了,正如上面看到的具有 The project files in Visual Studio (.csproj, .vbproj, .vcxproj, and others) contain MSBuild XML code 不难理解,MSBuild可以在未安装Visual Studio的环境中编排和构建产品(可以简单理解为执行可以代码),而且Visual Studio使用MSBuild加载和生成托管项目。 例如:Visual Studio中的项目文件.csproj,.vbproj,.vcxproj等, 在.NET Framework 4.0中支持了一项新功能”Inline Tasks”,被包含在元素UsingTask
NuGet 客户端工具 要使用 NuGet,作为软件包使用者或创建者,可以使用命令行接口 (CLI) 工具以及 Visual Studio 中的 NuGet 功能。 dotnet CLI 随某些 Visual Studio 工作负载一起安装,例如 .NET Core 。 从 Visual Studio 2017 开始dotnet CLI 将自动随任何与 .NET Core 相关的工作负载一起安装。 这种方式现在基本不使用,因为我们一般不会去单独安装,都是安装VS后直接使用就行了,除非你还在使用Visual Studio 2017 以前的版本。 至于他们有什么区别呢? 可以进行程序包的查找和安装的包管理,对包进行卸载更新。 在右上角有一个程序包源,可以进行包源设置,设置包源地址。默认是将 NuGet.org 用作 NuGet 客户端的包存储库。
项目n{ 属性; 引用; 类; } } 3、 csproj文件的作用 “csproj文件究竟是做什么用的” csproj文件 是“C Sharp Project”的缩写。 那么它究竟是给谁用的呢?那是给开发工具用的,例如我们再熟悉不过的Visual Studio,以及大家可以没有接触过,但是应该都听说过的MSBuild.exe。 Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build 和Post-Build需要哪些操作等等。 Visual Studio和MSBuild都是开发工具,这就是csproj存在的唯一意义:为“开发环境”提供信息。而到了运行环境中,根本不会有人(操作系统?)
介绍 Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用 Studio 2017 15.3以上版本中已经集成了Source Link , 现在你可以非常方便的在VS中调试 .Net Core 和 Nuget分发的软件包的源代码,并且不需要安装 ReSharper Studio Team Services) Azure DevOps Server (former Team Foundation Server) Bitbucket 快速使用 必须满足 Visual Studio 2017 15.3以上版本,然后做一下简单的设置 打开 工具 -> 选项 -> 调试, 勾选 启用源链接支持,取消勾选 启用仅我的代码 设置符号包(symbol packages) 的地址 ,它包含了源代码文件的url地址 Newtonsoft.Json 是我经常使用的一个软件包, 也是 Nuget 下载量第一的包,我想看一下它的源代码,了解如何进行序列化的,我新建了一个 .Net Core
介绍 Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用 Studio 2017 15.3以上版本中已经集成了Source Link , 现在你可以非常方便的在VS中调试 .Net Core 和 Nuget分发的软件包的源代码,并且不需要安装 ReSharper 必须满足 Visual Studio 2017 15.3以上版本,然后做一下简单的设置 打开 工具 -> 选项 -> 调试, 勾选 启用源链接支持,取消勾选 启用仅我的代码 ? [3] Newtonsoft.Json 是我经常使用的一个软件包, 也是 Nuget 下载量第一的包,我想看一下它的源代码,了解如何进行序列化的,我新建了一个 .Net Core 的控制台项目,现在断点在序列化的这一步 [6] 右键项目编辑项目文件, 编辑csproj文件 <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework>
Studio window locations Visual Studio采用两种文件类型(.sln和.suo)来存储特定于解决方案的设置,它们总称为解决方案文件。 *.suo文件偶尔会被破坏,从而在构建和编辑应用程序时出现意想不到的结果。如果Visual Studio对于每个解决方案不稳定,就应删除.suo文件。 ,就会出现在Form1.cs里 其实在早期版本的Visual Studio里,是没有Form1.Designer.cs的,窗体的设计类和逻辑类全在一个文件里。 Visual Studio会根据csproj里的XML定义来管理项目文件以及相关其他一些种类非常丰富的数据及操作,MSBuild也会根据csproj文件来得知编译这个项目需要有哪些依赖,默认输出路径,Pre-Build Visual Studio和MSBuild都是开发工具,这就是csproj存在的唯一意义:为“开发环境”提供信息。而到了运行环境中,根本不会有人(操作系统?)
、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。 同样,Visual Studio也是根据该文件中的内容来加载项目的。抛开Visual Studio的其它功能,可以将其看作是.csproj文件的图形管理工具。 Web.config & App.config .NET Framework 使用Visual Studio创建Web项目(MVC或Web Api)时,会在根目录生成Web.config文件。 注意,这里所引用的是项目在运行时所需的程序集,而.csproj中描述的程序集是项目中添加的引用,二者有区别:项目中添加的引用在运行时未必会用到。 包: [zvdx6amfla.jpg] 我们通过Nuget命令行或者Visual Studio中的图形界面来管理Nuget包,当Nuget包发生变更时,packages.config与.csproj文件内容及
、html、js、config、xml等 项目所引用的程序集信息,包含本地dll与Nuget包 其它信息 Visual Studio中对项目所做的配置,均可在该文件中体现出来。 同样,Visual Studio也是根据该文件中的内容来加载项目的。抛开Visual Studio的其它功能,可以将其看作是.csproj文件的图形管理工具。 Web.config & App.config .NET Framework 使用Visual Studio创建Web项目(MVC或Web Api)时,会在根目录生成Web.config文件。 注意,这里所引用的是项目在运行时所需的程序集,而.csproj中描述的程序集是项目中添加的引用,二者有区别:项目中添加的引用在运行时未必会用到。 包: 我们通过Nuget命令行或者Visual Studio中的图形界面来管理Nuget包,当Nuget包发生变更时,packages.config与.csproj文件内容及packages文件夹都会发生相应的变化
多年来,许多 Visual Studio 开发者在其. NET Framework 项目需要访问 Web 服务时,都享受到了添加服务引用工具所带来的工作效率。 WCF Web 服务引用工具是 Visual Studio 连接服务的扩展,提供了类似于 .NET Core 和 ASP.NET Core 项目的“添加服务引用”功能的体验 。 系统必备 Visual Studio 2017 版本 15.5 或更高版本 如何使用扩展 备注 “WCF Web 服务引用”选项适用于使用以下项目模板创建的项目 : Visual C# > .NET 在名为“reference.cs”的文件中生成服务引用代码,并将其添加到“连接的服务”节点下的项目 。 使用在目标平台上编译和运行所需的 NuGet 包引用更新项目文件 (.csproj)。 另请参阅 Windows Communication Foundation 应用程序入门 Visual Studio 中的 Windows Communication Foundation 服务和 WCF
扫码关注云+社区
领取腾讯云代金券