msbuild 相关问题

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

在开发模式下使用自定义 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

为什么即使设置了包源映射,我也会收到中央包管理警告 NU1507?

我正在尝试 NuGet 中新的中央包管理功能。 如文档中所述,如果您使用多个 NuGet 源(我使用的),现在需要配置包源

回答 2 投票 0

Web 配置转换失败

我们有 ASP.NET Web 项目,我们正在将其迁移到具有集中式 nuget 包管理的 .NET SDK 样式项目。 我们使用的模板是 我们有 asp.net Web 项目,我们正在将其迁移到具有集中式 nuget 包管理的 .NET SDK 样式项目。 我们使用的模板是<Project Sdk="MSBuild.SDK.SystemWeb/4.0.88">,我们有一个包含三个转换(调试、发布、测试)的 Web.Config 文件。构建操作设置为内容,复制到输出目录设置为无。 VS 构建工作得很好,但是当我们尝试发布构建时,我们收到以下消息: PreTransformWebConfig: Found The following for Config tranformation: Web.config, Web.config Skip copying Web.config to ...\Release\TransformWebConfig\original\W eb.config, File ...\Release\TransformWebConfig\original\Web.config i s up to date 构建失败: Transforming Source File: ...\Web.config;Web.config C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publi shing.targets(1552,5): error : Could not open Source file: Could not find file '...\Web.config;Web.config'. [...Web.API.csproj] 构建命令: msbuild /p:configuration=release /p:DeployOnBuild=true /p:DebugType=None /p:SkipInvalidConfigurations=true /p:WarningLevel=0 如何解决这个问题?这是一个.net框架项目,能够转换web.config对我们来说非常重要。 当项目迁移到 SDK 样式,同时保留显式内容项时,就会发生这种情况。 修复:添加 <EnableWebFormsDefaultItems>false</EnableWebFormsDefaultItems> 或删除显式项目。 原答案复制自: https://github.com/CZEMacLeod/MSBuild.SDK.SystemWeb/issues/60 最后我们对 CSPROJ 文件本身有些混乱......对我们有用的是: <ItemGroup> <None Include="Web.Debug.config"> <IsTransformFile>true</IsTransformFile> <DependentUpon>Web.config</DependentUpon> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> <None Include="Web.Release.config"> <IsTransformFile>true</IsTransformFile> <DependentUpon>Web.config</DependentUpon> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> <None Include="Web.Test.config"> <IsTransformFile>true</IsTransformFile> <DependentUpon>Web.config</DependentUpon> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> </ItemGroup> ..... <ItemGroup> <Content Update="Web.config"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> <TransformOnBuild>true</TransformOnBuild> </Content> <Content Update="Web.Debug.config"> <IsTransformFile>true</IsTransformFile> <DependentUpon>Web.config</DependentUpon> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </Content> <Content Update="Web.Release.config"> <IsTransformFile>true</IsTransformFile> <DependentUpon>Web.config</DependentUpon> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </Content> </ItemGroup>

回答 2 投票 0

AzureDevOps Build 失败,无法到达 Microsoft.WebSite.Publishing.targets。未知 VStoolspath

我的项目无法构建,因为它无法到达 Azure DevOps 上的 Microsoft.Web.Publishing.targets 我们在 Prem 上的 VStoolsPath 是“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 12.0”并带有“\...

回答 2 投票 0

使用 (XALM) 构建过程模板在 TFS 2013 中将工具路径设置为 MSBuild 2019

TL;DR:清理 Windows 构建服务器,安装 MS Build Tools 2019 和 TFS 2013。 构建日志显示异常消息:找不到文件:MSBuild.exe(类型 FileNotFoundException) 我该如何设置 MSBUILD...

回答 3 投票 0

尝试使用 ProjectReference 将应用程序发布为独立的,以便在 WiX v4 项目中使用

我正在尝试使用 WiX v4 创建安装,它将发布另一个 C# 项目,收获其文件,然后将其打包到安装程序中。我能够让它工作,但问题是......

回答 1 投票 0

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