Tag: msbuild

MSBuild不包含“VCTargetsPath”属性的值

我最近安装了Visual Studio 11开发人员预览版,现在我的VS 2010项目无法打开。 相反,我收到以下错误消息: MSBuild不包含“VCTargetsPath”属性的值 我发现有人在Connect上报告了这个问题,微软的回应是: 微软于2011年12月2日下午5:25发布 你好Afshin, 感谢您的反馈。 您遇到的问题已修复下一个公开版本的Visual Studio。 Jim Griesmer Visual C ++团队 太棒了。 那么如何恢复VCTargetsPath,以便我的项目能够再次运行? “VCTargetsPath是在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0中定义的工具集属性。 我浏览了registry中的VCTargetPath值,它具有以下值: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\ 不知道从哪里去。 有什么build议么?

是否有可能不使用Visual Studio安装C#编译器?

我想从命令行构build项目。 是不是可以在不安装Visual Studio的情况下部署C#编译器?

在项目锥体之外的.csproj中包含内容文件

我有一个C#项目说:位于“C:\ Projects \ MyProject \”MyProject.csproj。 我也有我想要复制到这个项目的输出目录的文件。 但是,这些文件位于“C:\ MyContentFiles \”位置,即它们不在项目锥体内。 这个目录也有子目录。 目录的内容不受pipe理。 因此,我必须包括所有的内容。 当我将它们作为“内容”包含在项目中时,它们被复制,但目录结构丢失。 我做了这样的事情: <Content Include="..\..\MyContentFiles\**"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> 如何将这些文件/目录recursion地复制到保存目录结构的项目的输出目录中?

MSBuild ProjectReference:private(“Copy Local”) – 允许的值和行为是什么?

TL; DR是否有任何官方文档详细描述了如何在MSBuild中使用<private> /“Copy Local”选项? 那么应该考虑什么样的价值呢? 当您将项目引用从Visual Studio中的一个项目添加到另一个项目时,它将向.csproj MSBuild文件添加<ProjectReference Include="…..csproj"> 。 当您将文件引用从Visual Studio中的一个项目添加到文件系统中的程序集文件时,它将添加<Reference Include="Foo"> <HintPath>….Foo.dll</HintPath> …到.csproj MSBuild文件。 在这两种情况下,对于Visual Studio设置Copy Local = True|False ,将添加子元素<Private>True</Private>或<Private>False</Private> 。 Reference和ProjectReference似乎被logging在Common MSBuild项目项下 : <ProjectReference> Represents a reference to another project. Item Name Description ————————- Name … Project … Package … <Reference> Represents an assembly (managed) reference in the project. Item Name Description […]

在MSBuild中传递variables的不同方法

我对MS Build很陌生,一直在审查Visual Studio附带的许多内置目标文件。 我已经看到variables通过了几种不同的方式,并不太清楚这些之间的差异: $(…) @(…) %(…)

项目的默认XML名称空间必须是MSBuild XML名称空间

我在本地克隆了ASP.NET Core SignalR Repo ,并尝试从以下环境中打开解决scheme。 IDE Microsoft Visual Studio Enterprise 2015 Version 14.0.25431.01 Update 3 Microsoft .NET Framework Version 4.6.01055 DOT NET CLI λ dotnet –info .NET Command Line Tools (1.0.0-preview2-1-003177) Product Information: Version: 1.0.0-preview2-1-003177 Commit SHA-1 hash: a2df9c2576 Runtime Environment: OS Name: Windows OS Version: 6.1.7601 OS Platform: Windows RID: win7-x64 我最终看到了很多这样的错误信息: ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj :错误:项目的默认XML命名空间必须是MSBuild […]

在MsBuild中禁用生成PDB文件

我正在寻找更多的速度挤出我的构build,并想知道如果我可以指示msbuild不生成PDB文件。 我通过configuration=发布和DebugSymbols = false属性没有运气。

Visual Studio重build未修改的项目

所以,正如标题所示,我现在有一个VS2010解决scheme,里面有大约50个项目。 如果我改变了一个没有任何引用的“顶级”项目,VS仍然重build所有50个项目。 我正在运行Visual Studio 2010 Ultimate,没有任何附加组件。 我正在使用ILMerge将所有项目合并到一个文件中。 我已经通过检查低级DLL的时间戳validation了这一点,并且看到它们确实被重build,即使它们的代码没有被触摸。 我已阅读所有回复和评论: Visual Studio 2008不断重build Visual Studio不断构build一切 在我的解决scheme中发生奇怪的VS2010生成故障 在Visual Studio中重buildC#项目的原因 但他们大多只是提出卸载项目的build议,以加快构build时间,但没有具体的解决办法。 我试图找出为什么VS认为这些依赖项目需要重build时,他们不和解决它。 我打开了“工具”>“选项”>“项目和解决scheme”>“构build和运行”>“仅运行构build启动项目和依赖关系”,但没有任何效果。 另外,如果我只重build一个只有8个(直接)依赖关系的“中级”项目,那么即使ILMerge没有被调用,也没有任何依赖项目被修改,它仍然会build立所有8个项目。 感谢大家的任何洞察力,你可能能够提供。 添加 为了testing一些build议,我从头创build了一个新的WinForms项目。 然后,我在该解决scheme中创build了两个新项目。 我从我的两个“最低级别”项目中将所有的代码和资源(不是项目文件)复制到两个全新的项目中(我通过将文件和文件夹从资源pipe理器中删除到Visual Studio中的项目上)。 最低的项目,我们称之为B ,没有引用任何其他项目。 下一个项目A只参考B. 所以一旦我将所需的.NET和外部程序集引用添加到项目中,那么解决scheme就会生成。 然后,我有我的新的WinForm项目参考A ,并做了一个完整的构build。 所以参考链是: WinForm – > A – > B 然后,我只修改了WinForm并做了一个标准的构build(F6)。 和以前一样,Visual Studio重build了所有三个项目。 在项目B中对源文件进行了一些系统化的布局之后,我发现如果我删除了Resources.Designer.cs和Resources.resx (并且注释了使用这些资源的.Properties.Resources对象的代码),那么修改WinForm将不再重build整个解决scheme,只会重buildWinForm 。 将Resources.resx和Resources.Designer.cs添加回项目B (但将引用的代码注释掉,以避免使用资源)将重新引入完整的构build行为。 为了查看我的资源文件是否损坏,我再次删除它们,然后创build一个新的(通过项目属性 – >资源),并重新添加与之前相同的资源,这是一个单独的Excel文件。 有了这个设置,完全重build仍然会发生。 然后我删除了单个资源,但将资源文件留在项目B中 。 […]

当给定相对path时,如何让MSBUILD评估和打印完整path?

我怎样才能得到MSBuild评估和打印在一个<Message />任务给定一个相对path的绝对path? 物业集团 <Source_Dir>..\..\..\Public\Server\</Source_Dir> <Program_Dir>c:\Program Files (x86)\Program\</Program_Dir> 任务 <Message Importance="low" Text="Copying '$(Source_Dir.FullPath)' to '$(Program_Dir)'" /> 产量 将“'复制到'c:\ Program Files(x86)\ Program \'

什么是NuGetPackageImportStamp?

将某些NuGet打包添加到项目中时,有时会在.csproj文件的第一个属性组中显示一个奇怪的项目。 <PropertyGroup> … <NuGetPackageImportStamp>3d051ef3</NuGetPackageImportStamp> </PropertyGroup> 邮票每次都是不同的,而且看起来并不连贯。 在NuGet文档中我找不到任何对<NuGetPackageImportStamp>引用。 它是什么,它是如何工作的? 有必要吗? 一个似乎每次都会添加的包是StyleCop.MSBuild ,至less在当前的4.7.49版本中是这样的。 只需将该软件包添加到新项目中,即可看到这个神秘项目出现在您的项目文件中。