Tag: csproj

对于同一.NET库的不同目标框架版本,程序集guid属性是否有所不同?

我正在用C#开发一个.NET库,它必须解决一系列广泛的目标框架。 我想生成一个nuget包,可以根据目标项目的设置正确安装。 为了实现这一点,我使用多个.csproj文件。 他们每个人都在寻址一个特定的目标框架(例如MyLibrary.net45.csproj会在bin/*/net45创建二进制文件,MyLibrary.netstandard1.2.csproj会在bin/*/netstandard1.2创建输出,所以上)。 然后我用上面项目的输出创建一个nuget包。 在此阶段,不同的.csproj文件重用相同的AssemblyInfo.cs文件,从而在那里使用共享设置。 我一直想知道所有不同的目标框架对[assembly: Guid(“…”)]属性使用相同的值是否正确,或者每个目标框架二进制文件是否应该使用自己的独特框架构建?

如何获得我的C#项目之间的依赖关系图

我有一个相当复杂的应用程序,它被分解为多个组件。 每个组件都有一个包含大量项目的解决方案文件。 所以我喜欢把它想象成一个组件中有多个项目/ dll。 还有一个“共同”组件。 所有其他组件都依赖于“共同”。 所以编译是这样的: “nant component1.compile”将编译“common”然后编译component1,因为component1依赖于“common”。 随着时间的推移,“共同”变得相当大。 我很确定它可以分成几个较小的组件。 然后组件需要仅依赖于这些较小的,破碎的“共同”中的一些。 这有望减少不同组件的编译时间。 所以问题:我想要显示应用程序中所有不同项目之间的依赖关系,同时标记项目所属的组件。 你会怎么做?

C#检查csproj中的属性是否“开始/结束”

我在我的csproj文件中设置一些配置,这些配置将针对不同的框架版本。 理想情况下,我想要’Debug – 3.5’,’Debug – 4.0’,’Release – 3.5’和’Release – 4.0’的配置。 在我的csproj文件中,我想做类似以下的事情: v3.5 </PropertyGroup v4.0 </PropertyGroup … check for "starts with Debug" to define Optimize etc. 但是,我不知道如何检查${Configuration}以特定字符串开头/结尾。 是否有捷径可寻? 编辑 :下面标记的答案指出我正确的方向,这导致我去: … setup pdb, optimize etc. … set target framework to 3.5 … and so on for Release and 4.0 variations

部分.csproj文件

是否可以将.csproj中的信息拆分为多个文件? 有点像partial classfunction的项目版本。

在Visual Studio中粘贴引用时出现错误HRESULT E_FAIL

我知道这不是一个编程问题,但它是一个编程工具问题。 在Visual Studio 2008 Team Edition(带有.NET 3.5 SP1的9.0版)中,当我将引用从一个csproj复制并粘贴到另一个csproj时(使用“解决方案资源管理器”视图中的上下文菜单),我收到以下错误: 错误HRESULT E_FAIL已从调用COM组件返回 这刚刚开始在我的机器上发生。 我只能找到关于它的这篇文章,它不包含任何解决方案。 有任何想法吗?

csproj文件中的多个提示路径来自文本文件变量

上下文:在我们的应用程序中有两个独立的dll,它们是为不同类型的硬件配置的变量存储库。这些dll具有相同的名称并从我们的应用程序中引用,现在每次如果我们想要测试我们必须复制的不同类型的硬件相关的dll到应用程序运行的位置。 我正在寻找一种解决方法。 参考文献:我见过以下post, 1) .csproj程序集的多个提示路径 2) https://whathecode.wordpress.com/2012/10/07/conditional-project-or-library-reference-in-visual-studio/ 问题:我可以在文本文件中声明一个变量,如 type1 并在我的csproj文件中导入该文本文件并为我的应用程序分配适当的引用吗? 任何帮助.. 以下是复制我们项目的测试应用程序。 SignalPool1,SignalPool2具有相同的类名,并且是我们项目的两个不同位置可用的两种不同硬件配置的存储库。 如果我们想测试硬件1,我们将删除当前引用并添加相关信号池的引用,这同样适用于hardware2。 现在为了避免这种手动工作,我想自动化这个过程要么在XML上声明一个变量并访问csproj文件中的变量来决定在编译/运行时访问哪个变量。 目前为了避免这个问题,我有一个单独的exe,它读取xml并决定将它们复制到一个公共文件夹中。这个exe将在我们项目中的prebuild事件时被调用。 //信号池1文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SignalPool { public abstract class SignalPool { public abstract string PreExec(); public abstract string PostExec(); public abstract string VnVExec(); public static string HWVar1 = “HWVar1”; public static string HWVar2 […]

为每个构建配置设置不同的ApplicationIcon

我正在尝试为我的C#项目的每个构建配置设置一个不同的Icon(使用VS 2010 pro)。 一个配置适用于不同的客户,因此该配置应使用不同的图标。 我不确定为什么这在csproj文件中不起作用: …blah… Images\RegularIcon.ico …blah… Images\CustomerIcon.ico 它不起作用。 不确定我是否走在正确的轨道上。 令人沮丧的事情……如果我在Visual Studio中使用Properties-> Application选项卡设置图标,它会在csproj文件中创建: Images\foo.ico 为什么要遵守此匿名PropertyGroup中指定的图标,但是条件PropertyGroup中的图标会被忽略? 我很感激这个帮助。

MS-Build BeforeBuild未触发

我正在定制一个.csproj项目,以便在主构建之前运行一些自定义任务。 但是,我根本无法执行任务。 我取消注释.csproj文件中的元素,并添加了一个简单的Message任务,但是当我构建时,消息没有出现在我的输出中,所以看起来任务没有运行。 所以这个片段不输出消息; 清单1:没有消息出现 但是,如果我搞砸了一些属性,我可以让.csproj完全无法执行; 清单2:MSBuild配置错误 请注意XXImportance属性。 我得到的构建错误是 My.csproj(83,46): error MSB4064: The “XXImportance” parameter is not supported by the “Message” task. Verify the parameter exists on the task, and it is a settable public instance property. 这表明正在解析XML,已找到Message类,并且该类正在反映可用属性。 为什么这项任务不会执行? 我正在使用3.5框架。 更新1:在@Martin的建议下,我试图在控制台上运行MSBuild,并得到了这个错误; c:\path\to\my.csproj(74,11): error MSB4019: The imported project “C:\Microsoft.CSharp.targets” was not found. Confirm that the path […]

元素中“Project”属性的值“”无效。 vs2012

尝试在visual studio 2012中加载一些项目时出现以下错误: G:\path\project.csproj : error : The value “” of the “Project” attribute in element is invalid. Parameter “path” cannot have zero length. 在svn结账后,我正在尝试这个机器。 这些项目可以正确加载到其他机器上。 有人可以帮我解决这个问题吗? 谷歌没有给我答案,我希望如此。 编辑 这是csproj文件的相关部分。

添加在Visual Studio 2017 RC中构建.NET Core项目后运行的msbuild任务

在Visual Studio 2017 RC中是否有像msbuild中的AfterBuild Target和.NET Core? 我尝试将以下剪辑添加到.csproj文件中,但在构建期间不会执行此操作(与VS2015相反,它可以正常工作)。 另一个有趣的发现:我认为AfterBuild目标可能已被删除 – 运行msbuild /t:AfterBuild似乎没有调用添加的目标。 如果我将目标重命名为“Test”,则使用msbuild /t:Test调用它msbuild /t:Test它的工作正常。 另外,是否有关于Visual Studio 2017 RC附带的msbuild版本(以及可能的.NET Core构建脚本)的任何文档?