Tag: csproj

如何摆脱StyleCop

我们团队中的某个人安装了StyleCop,从那时起,他加载并承诺源代码控制的所有项目都拒绝加载,除非安装了stylecop。 我知道我可以手动编辑.csproj文件来摆脱它,但是有一种简单的方法可以从项目文件中自动删除这些stylecop部件,以便可以在非Stylecop感染的Visual Studio机器上加载和构建它们吗?

根据项目配置更改csproj OutputType

我需要根据项目的配置将C#项目构建为WinExe或Library。 我试过这两种方法都没有运气: 1)在一般PropertyGroup中: WinExe Library 2)在条件PropertyGroup中: WinExe Library 这些方法都不起作用,OutputType始终是WinExe。 奇怪的是,如果我将WinExe的所有实例更改为库,那么它总是库。 这让我觉得它正在成功地阅读它们,但要么是以奇怪的顺序,要么WinExe优先于图书馆。 有任何想法吗?

可以通过批处理文件以编程方式删除和添加对csproj的引用吗?

我正在编写一个简短的批处理文件来准备一个带有Examples项目的控件库DLL,以便通过sip文件进行部署,并提出以下问题。 给定已知位置的csproj文件和已知位置的DLL,是否可以以编程方式从批处理文件(通过第三方命令行exe或其他脚本)更新csproj以添加新DLL? 我的文件夹结构是 /Build /SDK /WPF /4.0 : ControlLibrary.dll sits here /Examples /WPF /4.0 : Examples.csproj sits here 假设批处理文件处于/ Build级别,有没有办法修改Examples.csproj以引用ControlLibrary.dll? 只是为了澄清,我之所以有这样的结构是因为我希望部署一个示例csproj来附带我的控件库。 Examples.csproj应该引用SDK /下的混淆控件库。 examples.csproj也存在于dev trunk(它已被复制)上,并且在开发解决方案中它引用了非混淆forms的ControlLibrary.csproj的输出。 基本上我在这里创建的是一个文件夹结构,用于压缩和发送ControlLibrary以及示例,因此需要更新引用。 更新 – 使用Powershell解决 请参阅使用Powershell 添加和删​​除引用的相关问题和答案

新的.csproj格式 – 如何将整个目录指定为“链接文件”到子目录?

使用新的.csproj格式(以及旧格式),可以将文件添加到项目文件夹之外的链接: 也可以使用glob模式来包含多个文件: 但是你如何将两者结合起来呢? 我试过的 前两个只创建一个链接文件(分别名称为*.cs和* )。 第三个只是出错了。 有没有办法将globbing和链接文件组合到目标项目中的特定位置? 如果没有,我如何链接目录中的所有文件而不知道他们的名字有多少或者是什么?

从csproj文件中读取引用列表

有没有人知道以编程方式读取VS2008 csproj文件中的引用列表的方法? MSBuild似乎不支持此function。 我试图通过将csproj文件加载到XmlDocument来读取节点,但XPath搜索不返回任何节点。 我正在使用以下代码: System.Xml.XmlDocument projDefinition = new System.Xml.XmlDocument(); projDefinition.Load(fullProjectPath); System.Xml.XPath.XPathNavigator navigator = projDefinition.CreateNavigator(); System.Xml.XPath.XPathNodeIterator iterator = navigator.Select(@”/Project/ItemGroup”); while (iterator.MoveNext()) { Console.WriteLine(iterator.Current.Name); } 如果我可以获取ItemGroups列表,我可以确定它是否包含参考信息。

XPath和* .csproj

我肯定错过了一些重要的细节。 我只是不能使.NET的XPath与Visual Studio项目文件一起工作。 我们加载一个xml文档: var doc = new XmlDocument(); doc.Load(“blah/blah.csproj”); 现在执行我的查询: var nodes = doc.SelectNodes(“//ItemGroup”); Console.WriteLine(nodes.Count); // whoops, zero 当然,文件中有名为ItemGroup的节点。 此外,此查询有效: var nodes = doc.SelectNodes(“//*/@Include”); Console.WriteLine(nodes.Count); // found some 使用其他文档,XPath工作得很好。 我对此完全感到困惑。 谁能解释一下发生了什么事?

如何让.NET Core项目复制NuGet引用来构建输出?

我正在尝试使用.NET Core编写一个插件系统,我的一个要求是能够将插件DLL及其依赖项分发给用户进行安装。 但是,我无法弄清楚如何将我的NuGet依赖项作为构建工件包含在内,并将它们输出到构建文件夹,而不必将dotnet publish作为hack使用。 有什么方法可以在csproj中指定它吗?