msbuild 相关问题

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

MSBuild 17 的 Xamarin.Android Azure 构建失败

我有一个 Xamarin.Forms 应用程序,其 Azure 构建管道在 macos-12 代理上运行,我们使用该代理生成 .apk 文件以部署到 Google Play 商店。 Azure 管道正在使用 Xamarin。

回答 1 投票 0

使用 MSBuild 将 JavaScript 文件与正则表达式连接

我在msbuild中连接javascript,如下所示: 我在 msbuild 中连接 javascript,如下所示: <ItemGroup> <JsFiles Include="wwwroot/**/*.js" /> </ItemGroup> <ItemGroup> <JsLines Include="$([System.IO.File]::ReadAllText(%(JsFiles.Identity)))"/> </ItemGroup> <WriteLinesToFile Lines="@(JsLines)" File="wwwroot/bundle.js" Overwrite="true" /> 这可行,但是当源文件包含正则表达式时: let foo = bar.replace(/\[\d+\]/, '[10]'); 然后他们是这样写的: let foo = bar.replace(//[/d+/]/, '[10]'); 事实上这一行: // \/ 是这样写的: // // 还有这个: \\ 是这样写的: // 注意它如何将这些输入变成评论。因此,串联的文件无效。 我该如何解决这个问题? 以下几行正在创建项目集合。 <ItemGroup> <JsLines Include="$([System.IO.File]::ReadAllText(%(JsFiles.Identity)))"/> </ItemGroup> 但是 Include 尝试将提供的值解释为一组由分号分隔的文件路径。正则表达式中的转义字符被视为目录分隔符。 请勿在项目 [System.IO.File]::ReadAllText() 中使用 Include。 相反,请使用 ReadLinesFromFile 任务。 例如 <ItemGroup> <JsFiles Include="wwwroot/**/*.js" /> </ItemGroup> <ReadLinesFromFile File="%(JsFiles.Identity)"> <Output TaskParameter="Lines" ItemName="JsLines" /> </ReadLinesFromFile> <WriteLinesToFile Lines="@(JsLines)" File="wwwroot/bundle.js" Overwrite="true" /> ReadLinesFromFile任务不会解释从文件中读取的行。该任务将为每个独特的%(JsFiles.Identity)进行批处理。每批次都会添加到 JsLines 项目集合中。

回答 1 投票 0

WebDeploy Jenkins 出现错误:无法写入配置文件

我们配置了一个作业,在 bitbucket 上的每次提交时自动构建和部署。我们使用 msbuild 成功构建并打包了解决方案,但出现以下错误......

回答 2 投票 0

MSBUILD 失败,错误为 MSB4236:找不到指定的 SDK“Microsoft.NET.Sdk”

我有一个 net48 SDK 项目(库),在我的构建机器上它突然停止构建(并且重新运行之前的提交失败)。 MSBuild 在哪里寻找 .net 框架的 Microsoft.NET.Sdk...

回答 2 投票 0

无法通过 Azure DevOps Pipeline 使用 Microsoft.Office.Interop.Word 部署 .NET Core 应用程序

我在部署通过 Azure DevOps 管道使用 Microsoft.Office.Interop.Word 的 .NET Core 应用程序时遇到问题。在本地,我设法使用 Interop Word 来比较 Word 文档...

回答 1 投票 0

在开发模式下使用自定义 MSBuild 任务时的文件锁定问题

我正在按照 Microsoft 示例中概述的指导开发自定义 MSBuild 任务。开发工作流程不好,因为每当我更改任务并且想要测试它时,要做...

回答 1 投票 0

Visual Studio 命令行上的 MSBuild

我正在尝试使用构建后构建事件在 .sln 上调用 msbuild 就像是: xcopy "$(TargetDir)$(TargetName)*" "C:\TEST\" /Y. 我可以只用一行来做吗?基本上我想拥有

回答 6 投票 0

创建仅包含msbuild.targets的nuget包

我正在尝试创建一个仅包含 MSBuild *.targets 文件的 nuget 包。我可以创建一个 C# 类库并添加我的目标文件,但我不需要 C# 构建过程的开销。难道是……

回答 1 投票 0

如何在 .csproj 中定义引用 IntermediateOutputPath 的属性

我在.csproj中有这样的部分: 我在 .csproj 中有这样的部分: <Target Name="Date" BeforeTargets="BeforeBuild"> <WriteLinesToFile File="$(IntermediateOutputPath)BuildInfo.gen.cs" Lines="...."/> </Target> <ItemGroup> <Compile Include="$(IntermediateOutputPath)BuildInfo.gen.cs" Condition="Exists('$(IntermediateOutputPath)BuildInfo.gen.cs')"/> </ItemGroup> IntermediateOutputPath如期解决,一切都很好。但由于整个路径在我的 .csproj 中重复了 3 次,我想清理它并提出自定义变量: <PropertyGroup> <BuildInfoPath>$(IntermediateOutputPath)BuildInfo.gen.cs</BuildInfoPath> </PropertyGroup> <Target Name="Date" BeforeTargets="BeforeBuild"> <WriteLinesToFile File="$(BuildInfoPath)" Lines="...."/> </Target> <ItemGroup> <Compile Include="$(BuildInfoPath)" Condition="Exists('$(BuildInfoPath)')"/> </ItemGroup> 我的变量已解析,但其内容不完全正确 - 我的效果就像 IntermediateOutputPath 是一个空字符串。 那么我如何定义自己的变量引用IntermediateOutputPath? 我已经发现,如果我将变量定义包装在 Target 中,它将部分起作用 - 即上面所示的 Target 部分将获得正确的变量,但反过来对于 ItemGroup 我的变量会是空的。 MSBuild 有两个阶段:评估和执行。请参阅“MSBuild 如何构建项目”。 “顶层”的 ItemGroup 和 PropertyGroup 元素(即 Project 文档根元素的直接子元素)在评估阶段进行评估。 ItemGroup 中的 PropertyGroup 和 Target 元素在执行阶段进行评估。 我假设这是一个 SDK 风格的项目。在后台,根据 SDK 类型导入一组文件。有些文件是在 .csproj 项目文件内容之前导入的,有些文件是在 .csproj 项目文件内容之后导入的。 IntermediateOutputPath 属性是在评估阶段定义的,但在 .csproj 内容之后导入的文件中定义。 在评估阶段的项目文件内容中,该属性尚未定义,并且在定义之前使用该属性会产生一个空字符串 - 正如您所观察到的。 在 SDK 样式项目中,仅在目标中使用 IntermediateOutputPath 属性。 您仍然可以定义自己的属性和依赖于IntermediateOutputPath的项目,但您需要将定义包装在目标中,并确保在使用值之前执行定义,例如: <Target Name="DefineBuildInfoPath"> <PropertyGroup> <BuildInfoPath>$(IntermediateOutputPath)BuildInfo.gen.cs</BuildInfoPath> </PropertyGroup> </Target> <Target Name="Date" BeforeTargets="BeforeBuild" DependsOnTargets="DefineBuildInfoPath"> <WriteLinesToFile File="$(BuildInfoPath)" Lines="...."/> </Target> <Target Name="AddBuildInfoToCompile" BeforeTargets="BeforeCompile" DependsOnTargets="Date;DefineBuildInfoPath"> <ItemGroup> <Compile Include="$(BuildInfoPath)" Condition="Exists('$(BuildInfoPath)')"/> </ItemGroup> </Target>

回答 1 投票 0

Msbuild 与 bitbucket 管道

我们自己的 bitbucket 存储库中有多个 .NET 项目 (.NETFramework 4.7.1)。我们喜欢实现持续集成,以便存储库中的每个检查都应该运行自动单元

回答 1 投票 0

构建时间:“无法对打开用户映射部分的文件执行请求的操作”

我知道这个问题在这个网站上。但所有答案都与某些程序语句相关。 就我而言,没有。 我将 Visual Studio 更新到 Microsoft Visual Studio Community 2022(64 位)版本 1...

回答 1 投票 0

在输出文件夹中移动引用的正确方法是什么?

我的解决方案包含一些我们构建到的默认插件项目 .. 在\调试\插件\$(MSBuildProjectName) 这样做所有参考集最终都会...

回答 1 投票 0

Blazor Web 应用程序(.net 8 服务器) - Razor 组件库 RCL 作为 NuGet(本地源)w MainLayout 样式共享

找到答案后更新,供有问题的人将来参考 我想做什么: 在我的 web 应用程序上使用 MainLayout 来利用 RCL 的 razor 组件传入导航菜单并使用 ...

回答 1 投票 0

Microsoft.Data.SqlClient 5.1.2 抛出 NullReference 异常,堆栈跟踪指向引用程序集

我的云服务辅助角色 (.NET 4.8) 引用 NuGet 包 Microsoft.Data.SqlClient 版本 5.1.2。 该代码在本地运行良好。 Microsoft DevOps 管道构建并发布云服务...

回答 1 投票 0

nuget add 在 msbuild exec 命令中不起作用

我正在尝试在 VS2022 中自动化流程 Build -> Pack -> Add for nuget package。我已经创建了 SDK 类型项目并使用默认设置来创建 nuget 包。执行 Pack Comm 后...

回答 1 投票 0

需要一些帮助 - Blazor Web 应用程序(.net 8 服务器) - Razor 组件库 RCL 作为 NuGet(本地源)w MainLayout 样式共享

我正在尝试做的事情: 在我的 web 应用程序上使用 MainLayout 来利用 RCL 的 razor 组件传入导航菜单并使用共享库样式等。 我有一个 RCL,其中包含 2 个剃须刀组件...

回答 1 投票 0

MSBuild:CopyToOutputDirectory 不会将本机 DLL 复制到输出

我有一个包含 2 个项目的解决方案:MSBuildQuestion.csproj 和 NativeLibrary.vcxproj。 MSBuildQuestion.csproj 生成 MSBuildQuestion.exe。 NativeLibrary.vcxproj 生成 NativeLibrary.dll。 MSBuildQu...

回答 1 投票 0

我应该如何准备 Windows 桌面作为构建机器?

我想使用 Windows 桌面(例如运行 Windows 10 或 11)作为构建服务器。我应该禁用哪些服务以及应该安装哪些功能来准备计算机进行编译

回答 1 投票 0

Visual Studio - 自定义构建验证

我需要编写一个简单的方法,该方法将在编译时调用,如果不满足某些条件,该方法将生成构建错误。 是否可以通过某些特定属性来做到这一点?

回答 1 投票 0

项目参考尝试查找平台特定的 dll,当它是一个不可知的库时

我有一个多平台 MAUI 解决方案,其中包含多个项目。其中一个项目引用需要随平台而更改,因此我将其从 .sln 文件(GUI 放置的位置)移至...

回答 1 投票 0

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