msbuild 相关问题

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

Visual Studio 2022 无法构建基本的 C++ 项目

我一直在尝试在 Razer Blade 15" 2022 版本上的 Visual Studios 2022 (Windows 10) 中构建准系统 C++ 项目。当我尝试通过“构建”>“构建解决方案”构建项目时,

回答 1 投票 0

使用 Azure DevOps 构建管道构建 BizTalk 项目

我有一个 Visual Studio 解决方案,其中仅包含 BizTalk 项目。它们具有以下设置。 BizTalk 服务器 2016 .NET框架4.6 服务器上安装了。 BizTalk 开发人员 2016 (

回答 1 投票 0

C# 源代码生成器在构建之前删除文件

我正在使用一个源生成器,它生成我希望其他开发人员使用的实用程序类。我的发电机工作正常。我的问题是将文件发送到磁盘。我可以发出文件...

回答 1 投票 0

强制 Visual Studio 2013 重新加载项目的 .user 文件

我目前正在开发一个修改 .vcxproj.user 文件的 的工具。 更改后,当VisualStudio打开时,更改将不会被

回答 1 投票 0


C#编译器选项ErrorLog如何在msbuild或dotnet cli中使用项目名称或assmeblyname作为日志文件名

c# 编译器中有一个选项可以使用 errorlog 选项获取代码分析日志, 请参阅https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-options/errors-warnings 如果我们...

回答 1 投票 0

是否有任何 MSBuild 属性表明我们正在发布?

如果是发布版本,我想有条件地取消定义 DEBUG。 我可以检查一下我们当前是否正在发布某个属性吗?

回答 5 投票 0

如何使用 Visual Studio 2022 注册 32 位 COM 互操作

我在使用 Visual Studio 2022 注册用于 COM 互操作的 C# 组件时遇到困难。我以为我理解了这个问题,但即便如此,我也没能让它工作。 这是基本问题...

回答 2 投票 0

csproj 中的显式文件列表

我想阻止 MS Build 自动从我的项目目录中获取 .cs 文件。相反,我只想编译显式包含的文件: 我想阻止 MS Build 自动从我的项目目录中拾取 .cs 文件。相反,我只想编译显式包含的文件: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> </PropertyGroup> ... <ItemGroup> <Compile Include="./Program.cs" /> </ItemGroup> </Project> 如何配置 MS Build 以这种方式工作? $ dotnet --version 7.0.400 您可以通过首先排除所有 .cs 文件,然后包含您需要的文件来完成此操作。例如: <ItemGroup> <Compile Remove="**/*.cs" /> <Compile Include="./Program.cs" /> </ItemGroup> 请注意,**是一个通配符,允许搜索所有目录。请参阅此处了解更多信息。 您可以将 通配符 用作 Remove 属性。类似于以下内容:Compile

回答 2 投票 0

Testhost 进程退出并出现错误:您必须安装或更新 .NET 才能运行此应用程序

我最近在构建和部署环境中安装了“.net 6 (SDK 6.0.302)”。 现在这些环境已安装以下 SDK: 2.1.504 2.1.510 2.1.511 2.1.518 2.1.807 2.1.810 2.1.811...

回答 4 投票 0

MSBuildLocator.QueryVisualStudioInstances 返回空集合

我打算分析我的一个项目,但第一步就碰壁了。 MSBuildLocator.IsRegistered 为 false,MSBuildLocator.QueryVisualStudioInstances 返回空集合。 我...

回答 1 投票 0

当针对多个框架时,$(TargetFramework) 为空

我有一个针对多个框架的项目,在我的 .csproj 文件中使用 (复数)。 这工作正常,但我无法在 .csproj 中执行特定于框架的操作,因为 $(

回答 1 投票 0

比较 Msbuild 中的日期时间戳

我正在尝试比较 msbuild 中的两个日期时间戳。我做了以下事情: 我正在尝试比较 msbuild 中的两个日期时间戳。我做了以下事情: <CreateItem Include="@(Compile)->'@(Compile).cache'" Condition="('%(Compile.ExcludeFromStyleCop)' != 'true') and ('%(Compile.ExcludeFromSourceAnalysis)' != 'true') and (@(Compile.ModifiedTime) > @(Compile.cache.ModifiedTime))"> <Output TaskParameter="Include" ItemName="StyleCopFiles"/> </CreateItem> 但是,它会抛出以下内容: 错误 MSB4086:尝试进行数字比较 “@(Compile.ModifiedTime)”的计算结果为“@(Compile.ModifiedTime)” 而不是数字,条件为“('%(Compile.ExcludeFromStyleCop)' != 'true') 和 ('%(Compile.ExcludeFromSourceAnalysis)' != 'true') 和 (@(Compile.ModifiedTime) > @(Compile.cache.ModifiedTime))”。 [c:\dev pt\DotNetMvc\src\Apt.Lib.Data.Elmah\Apt.Lib.Data.Elmah.csproj] 如何在 msbuild 中比较两个日期时间戳? 这里一个更简单的解决方案是使用属性函数将 DateTime 对象转换为整数以访问 Ticks 属性。 对于命名文件: $([System.IO.File]::GetLastWriteTime('SomeFile.bin').Ticks) 或来自项目元数据: $([System.DateTime]::Parse('%(ItemGroup.ModifiedTime)').Ticks) 然后,您可以使用条件表达式来比较项目,如下所示: Condition="($([System.DateTime]::Parse('%(ItemGroup.ModifiedTime)').Ticks) &gt; $([System.IO.File]::GetLastWriteTime('SomeFile').Ticks)))" 就这里的问题而言,我相信这应该有效: Condition="($([System.DateTime]::Parse('%(Compile.ModifiedTime)').Ticks) &gt; ($([System.DateTime]::Parse('%(Compile.cache.ModifiedTime)').Ticks)" 尝试使用内联任务:(我猜需要msbuild v4+)(我没有测试过) <UsingTask TaskName="CompareDates" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" > <ParameterGroup> <FirstDate ParameterType="System.DateTime" Required="true" /> <SecondDate ParameterType="System.DateTime" Required="true" /> <Result ParameterType=" "System.Int32" Output="true" /> </ParameterGroup> <Task> <Using Namespace="System"/> <Code Type="Fragment" Language="cs"> <![CDATA[ Log.LogMessage("First Date: " + FirstDate, MessageImportance.High); Log.LogMessage("Second Date: " + SecondDate, MessageImportance.High); Result = DateTime.Compare(FirstDate, SecondDate); ]]> </Code> </Task> </UsingTask> MsBuild 脚本中的用法: <CompareDates FirstDate="$(FirstDate)" SecondDate="$(SecondDate)"> <Output TaskParameter="Result" PropertyName="DateCompareResult"/> </CompareDates> <Copy Condition="$(DateCompareResult)=='0'" .../> 这是我们的做法: <UsingTask TaskName="CompareDates" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" > <ParameterGroup> <FileList ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" /> <CacheFile ParameterType="System.String" Required="true" /> <Result ParameterType="Microsoft.Build.Framework.ITaskItem[]" Output="true" /> </ParameterGroup> <Task> <Using Namespace="System"/> <Code Type="Fragment" Language="cs"> <![CDATA[ var modifiedFiles = new List<ITaskItem>(); //If the cache file exists, only return files that have been edited more recently than it if(File.Exists(CacheFile)) { DateTime cacheTimeStamp = File.GetLastWriteTime(CacheFile); foreach(var file in FileList) { if(DateTime.Compare(DateTime.Parse(file.GetMetadata("ModifiedTime")), cacheTimeStamp) > 0) { modifiedFiles.Add(file); } } Result = modifiedFiles.ToArray(); } //Otherwise, return all files else { Result = FileList; } ]]> </Code> </Task> </UsingTask> 我们的使用方式如下: <CompareDates FileList="@(Compile)" CacheFile="My.StyleCop.Cache"> <Output TaskParameter="Result" ItemName="ChangedFiles"/> </CompareDates> 并更新了缓存(在执行stylecop任务之后): <Touch Files="My.StyleCop.cache" AlwaysCreate="true" Condition="'$(StyleCopViolationCount)' == '0'"/> <CreateItem Include="Apt.StyleCop.cache">`enter code here` <Output TaskParameter="Include" ItemName="FileWrites"/> </CreateItem>

回答 3 投票 0

Intellisense 无法在 VSCode 中工作 - OmniSharp 错误

Intellisense 已停止为我工作,每当我运行 VSCode 时,OmniSharp 日志中都会出现此错误。 [警告]:OmniSharp.MSBuild.ProjectManager 无法加载项目文件'/Users/leog...

回答 9 投票 0

是否可以使用 dotnet build/restore 在命令行上设置 TargetFramework?

我想从项目文件中删除 TargetFramework 说明符并通过命令行传递它。听起来很容易: dotnet 构建 -f net5 但最大的问题是 NuGet 方面。因为 点网休息...

回答 0 投票 0

使用EmbeddedResource时的CS2002警告输出

我尝试过的 csproj 中的以下设置用于从纯文本创建资源文件并生成强类型文件。 我尝试过的事情 csproj 中的以下设置用于从纯文本创建资源文件并生成强类型文件。 <ItemGroup> <EmbeddedResource Include="Resources\MyResources.restext"> <StronglyTypedLanguage>C#</StronglyTypedLanguage> <StronglyTypedFileName>Resources\MyResources.Designer.cs</StronglyTypedFileName> <StronglyTypedNamespace>$(RootNamespace).Resources</StronglyTypedNamespace> <StronglyTypedClassName>MyResources</StronglyTypedClassName> </EmbeddedResource> </ItemGroup> 资源生成本身没有问题,但是MyResources.Designer.cs输出的是CS2002。 问题 我可以使用哪些设置来防止输出警告?

回答 0 投票 0

从 MSBuild 读取 launchSettings.json 值?

我有时会在 Visual Studio 中远程调试我的项目,该项目在 launchSettings.json 中启用和配置。 我有一个 MSBuild 任务,可以自动将我的项目输出复制到远程计算机...

回答 1 投票 0

如何阻止 msbuild 在 azure devops 管道中转换 web.config

我正在使用 ASP.NET MVC 应用程序,我们已开始将其升级到 azure devops(代码和管道)。我们有多个 web.config 文件,每个环境对应一个(测试、发布等)

回答 2 投票 0

解决方案在 Visual Studio 中构建良好,但在 Azure DevOps 中远程构建失败并出现“错误 MSB406”

我的团队最近迁移到 .NET 6.0,在将我们的一个项目添加回解决方案后,发现虽然它在 Visual Studio 中本地构建和运行时很好,但在我们的 Azure D 中......

回答 2 投票 0

如何创建仅用于单元测试的自定义任务?

目前c#中的单元测试需要大量的shell参数:How to simplify the unit tests execution in c# when shell instead Visual Studio? 这就是为什么我要尝试创建一个自定义任务...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.