Questions tagged «msbuild»

Microsoft Build Engine,也称为MSBuild,是用于托管代码的构建平台,并且是.NET Framework的一部分。

30
找不到CodeDom提供程序类型“ Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider”
这是一个使用VS2015的WebApi项目。 复制步骤: 创建一个空的WebApi项目 将构建输出路径从“ bin \”更改为“ bin \ Debug \” 跑 在将“生成输出”路径从“ bin \”更改为“ bin \ Debug \”之前,一切工作正常,实际上,除“ bin \”以外的任何输出路径均无效。 另外一点是,只要我将构建保留在“ bin \”中,就可以在任何地方都具有另一个输出路径。 请帮助提供解决方案以解决此问题。我想这会在实际部署上带来问题。

5
'指定条件“ $(PackageAsSingleFile)”的计算结果为“”,而不是布尔值?
在“公共Web”中预览时,我PC上的Visual Studio 2012收到以下错误消息。我需要重新启动VS才能消除错误消息。 调用构建由于异常'失败,指定条件“ $(PackageAsSingleFile)”的计算结果为“”,而不是布尔值。C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets' 是什么导致错误?

4
如何指定MSBuild平台?
我正在尝试使用MSBuild来构建具有指定目标平台的解决方案(我同时需要x86和x64二进制文件)。这是我尝试的方式: C:\WINDOWS\Microsoft.NET\Framework\v3.5>MsBuild SolutionPath\Solution.sln /t:Rebuild /p:Configuration=Release /p:Platform="x86" 但是,如果平台不同于“任何CPU”,则构建总是会失败。我究竟做错了什么? 这是MSBuild输出的输出: C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5> MsBuild SolutionPath \ Solution.sln / t:Rebuild / p:Configuration = Release / p:Platform =“ x86” Microsoft(R)构建引擎版本3.5.30729.1 [ Microsoft .NET Framework,版本2.0.50727.3082]版权所有(C)Microsoft Corporation2007。保留所有权利。 建立开始于1.7.2010 8:28:10。在节点0上项目“ SolutionPath \ Solution.sln”(重建目标t)。SolutionPath \ Solution.sln:错误MSB4126:指定的解决方案配置“ Release | x86”无效。请使用“配置”和“平台”属性指定有效的解决方案配置(例如MSBuild.exe Solution.sln / p:Configuration = …
155 msbuild 

18
“复制本地”和参考项目的最佳实践是什么?
我有一个很大的C#解决方案文件(〜100个项目),并且我正在尝试缩短构建时间。我认为“复制本地”在很多情况下对我们来说都是浪费,但我想知道最佳做法。 在我们的.sln中,我们有依赖于程序集B的应用程序A,而程序集B则取决于程序集C。在我们的情况下,有数十个“ B”和少数“ C”。由于这些都包含在.sln中,因此我们正在使用项目引用。当前,所有程序集都内置到$(SolutionDir)/ Debug(或Release)中。 默认情况下,Visual Studio将这些项目引用标记为“ Copy Local”,这导致每个生成的“ B”都将每个“ C”复制到$(SolutionDir)/ Debug中一次。这似乎很浪费。如果我仅关闭“本地复制”,怎么办?其他拥有大型系统的人会做什么? 跟进: 许多响应建议将构建分解为较小的.sln文件...在上面的示例中,我将首先构建基础类“ C”,然后构建大量模块“ B”,然后构建一些应用程序,“一个”。在这个模型中,我需要从B到C的非项目引用。我遇到的问题是“ Debug”或“ Release”被烘焙到提示路径中,并且我最终构建了“ B”的Release版本。针对“ C”的调试版本。 对于那些将构建分为多个.sln文件的用户,您将如何解决此问题?

6
项目的默认XML名称空间必须是MSBuild XML名称空间
我在本地克隆了ASP.NET Core SignalR存储库,然后尝试从以下环境中打开解决方案。 集成开发环境 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 …

15
从解决方案中删除nuget包还原
我将最近的nuget软件包还原功能添加到使用“启用NuGet软件包还原”的解决方案中:http ://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages 但是它损坏了我的构建服务器,并且我没有时间修复它,因此我想删除它。据我所知,这是没有选择的,因此我从所有* .csproj文件中手动删除了以下行: <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 现在的问题是,每次我的* .csproj文件签出或打开我的解决方案时,该行都会自动再次添加,如果我不小心在:( 有什么想法可以将其永久删除吗? 更新:尽管下面的答案仍然存在,但在打开解决方案时仍然会出现问题,有人遇到同样的问题吗?

7
如何使用Windows SDK 7.1从命令行运行msbuild?
我正在CI服务器上设置.NET 4.0支持。我已经安装了.NET 4.0和Windows 7.1 SDK中的.NET工具。 在.NET 2.0和3.5上,它可以正常工作。使用.NET 4时,当我从“开始”菜单运行“ Windows SDK 7.1命令提示符”时,它抱怨 The x86 compilers are not currently installed. x86-x86 Please go to Add/Remove Programs to update your installation. . Setting SDK environment relative to C:\Program Files\Microsoft SDKs\Windows\v7.1 \. Targeting Windows Server 2008 x86 Debug 然后,当我尝试运行msbuild时,我得到: C:\Program Files\Microsoft SDKs\Windows\v7.1>msbuild 'msbuild' is …
141 .net-4.0  msbuild  sdk 


2
如何在MSBuild中的Exec命令中转义引号
我正在尝试构建一个MSBuild脚本,该脚本将网络驱动器映射到脚本中的驱动器号,但不幸的是,目标文件夹的路径包含嵌入式空间。嵌入的空间会导致映射失败,并且我不知道是否有可能在路径周围转义引号。我尝试过使用双引号,但是MSBuild不喜欢它(要么Windows XP不喜欢它)。有人知道如何编码这种野兽,以便地图起作用吗? <Exec Command="net use x: \\ofmapoly703\c$\program files\ar\iap /user:$(UserID) $(Password)" WorkingDirectory="c:\" ContinueOnError="false" /> 嵌入式空间当然出现在“程序文件”中。
131 msbuild 

25
运行MSBuild无法读取SDKToolsPath
你好,我在运行一个NAnt脚本时遇到了一个问题,该脚本用于在与VS2008及其相关工具一起编译时正确地构建基于.Net 2.0的网站。我最近将所有项目/解决方案文件都升级到了VS2010,现在我的构建因以下错误而失败: [exec] C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(2249,9):错误MSB3086:任务使用S dkToolsPath“”或注册表找不到“ sgen.exe”键“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7.0A”。确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下正确的处理器特定位置,并且已安装Microsoft Windows SDK 现在,我确实在构建服务器上安装了Windows SDK的早期版本(.Net 3.5),并安装了完整的.Net 4.0框架,但是我没有在Windows SDK的.Net 4.0特定版本上运行。 经过一番试验和研究,我终于设置了一个新的环境变量“ SDKToolsPath”,并将其指向Windows 6.0 sdk文件夹中sgen.exe的副本。这产生了相同的错误,但是让我注意到,即使设置了SDKToolsPath环境变量IS(确认我可以在命令行中“回显”它并且具有期望的值),该错误消息似乎也表明它是不被读取(请注意用空引号引起来)。 我发现的大多数信息都是特定于.Net 3.5(或更早版本)的。目前还没有多少4.0相关。搜索错误代码MSB3086也不产生任何作用。知道这可能是什么吗? 史考特
130 .net  msbuild 

7
我应该用/ MD或/ MT编译吗?
在Visual Studio中,有编译标志/ MD和/ MT,可让您选择所需的C运行时库。 我了解实现上的区别,但仍不确定要使用哪个。优点/缺点是什么? 我听说过的/ MD的一个优点是,它允许某人更新运行时(例如修补安全问题),并且我的应用程序将从此更新中受益。尽管对我而言,这似乎是一个无功能:我不希望人们在不让我针对新版本进行测试的情况下更改运行时! 我有些好奇的事情: 这将如何影响构建时间?(大概/ MT慢一点?) 还有哪些其他含义? 大多数人使用哪一个?

20
为什么MSBuild在C:\中查找Microsoft.Cpp.Default.props而不是c:\ Program Files(x86)\ MSBuild?(错误MSB4019)
当我运行msbuild来构建vc2010项目时,出现以下错误: error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. msbuild位于c:\ Program File(x86)\ MSBuild HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolVersions \ V4.0 VCTargetsPath设置为$ {MSBuildExtensionsPath32)\ Microsoft.Cpp \ v4.0 \ …
124 msbuild 

7
条件编译和框架目标
如果目标框架是较新的版本,则可以在几个较小的地方极大地改进我的项目代码。我希望能够更好地利用C#中的条件编译来根据需要切换这些条件。 就像是: #if NET40 using FooXX = Foo40; #elif NET35 using FooXX = Foo35; #else NET20 using FooXX = Foo20; #endif 这些符号中的任何一个免费吗?我是否需要在项目配置中注入这些符号?这样做似乎很容易,因为我将了解MSBuild所针对的框架。 /p:DefineConstants="NET40" 人们如何处理这种情况?您要创建其他配置吗?您是通过命令行传递常量吗?
124 c#  .net-3.5  msbuild  .net-4.0 

8
在Visual Studio中“将所有警告视为错误,但……除外”
在Visual Studio中,我可以选择“将警告视为错误”选项,以防止在有任何警告的情况下编译我的代码。我们的团队使用此选项,但我们希望保留两个警告作为警告。 有一个选项可以禁止显示警告,但是我们确实希望它们显示为警告,所以这行不通。 看来,获得所需行为的唯一方法是在“特定警告”文本框中输入每个C#警告编号的列表,但我们希望将其视为警告的两个除外。 除了维护上的麻烦之外,此方法的最大缺点是一些警告没有数字,因此无法明确引用。例如,“无法解析此引用。无法找到程序集'Data ....'。” 有人知道更好的方法吗? 为那些看不到为什么有用的人澄清。考虑一下大多数警告的工作方式。他们告诉您刚刚编写的代码有些不对劲。修复它们大约需要10秒钟,这使代码库更加整洁。 “过时”警告与此完全不同。有时修复它意味着只使用一个新的方法签名。但是,如果整个类都已过时,并且您的用法分散在成千上万的代码行中,则修复可能需要数周甚至更长的时间。您不希望这么长时间破坏构建,但是您确实希望看到关于它的警告。这不仅仅是一个假设的情况-这发生在我们身上。 文字上的“#警告”警告也很独特。我经常想签入,但是我不想破坏构建。
124 c#  msbuild 

3
在没有Visual Studio 2010的情况下安装MSBuild 4.0
我在笔记本电脑上安装了.NET 4.0和VS 2010 RC,并自动安装了MSBuild。我希望仅通过安装不带VS 2010的.NET SDK来构建持续集成服务器,因此我在此链接下从Microsoft下载了.NET 4.0 Framework 。不幸的是,此下载似乎没有安装MSBuild(或者至少我找不到)。 此链接是SDK的适当链接,还是仅仅是运行时?如果不是,SDK的链接在哪里? 我有点怀疑是整个SDK,因为它只有35MB,.NET 3.5 SP1下载超过200MB。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.