Microsoft Build Engine,也称为MSBuild,是托管代码的构建平台,是.NET Framework的一部分。
C# - 根据CPU平台选择TargetFrameworks
我有一个为 x86 编译的旧版 C# 应用程序。我将其升级到 VS 2022,并除了 x86 之外还启用 x64。我想使用 .Net Framework 4.5 编译旧版 x86 并使用 .Net 编译 x64...
如果我导入带有我自己的构建目标的自定义目标,为什么不会调用 C# 预构建和后构建事件?
如果我导入带有我自己的构建目标的自定义目标,为什么不会调用 C# 预构建和后构建事件? 我有一个 C# 项目文件,我通过导入自己的自定义目标文件对其进行了修改...
如果我导入带有我自己的构建目标的自定义目标,为什么不会调用 C# 预构建和后构建事件?
如果我导入带有我自己的构建目标的自定义目标,为什么不会调用 C# 预构建和后构建事件? 我有一个 C# 项目文件,我通过导入自己的自定义目标文件对其进行了修改...
我在 Jenkins 中运行 MSBuild 脚本时遇到此错误 C:\\.sln.metaproj : 错误 MSB4126: 指定的解决方案 配置“最新|任何 CPU”无效。
每秒生成 MSB4018 错误:未找到 System.Text.Json 且 .deps.json 文件为空
我正在使用 .NET SDK 6.0.135 在 Visual Studio 2019(32 位目标平台)中开发 C++/CLI 项目。该项目在构建服务器上运行并依赖于 System.Text.Json,尽管它不是
我们有一个 VS2022 C# .net8 解决方案,其中包含一些项目,必须使用两个不同版本的 nuget 包 (npgsql) 进行编译。我们通过定义一个特殊的 Buildvariable 解决了这个问题(OLD_N...
Visual Studio 22 尝试将构建后事件作为单个 cmd 执行
我将项目升级到 vs22/.net6,看起来 vs22 正在尝试将我的构建后事件作为单个命令执行。 每一行都是一个单独的 xcopy cmd。 这里有什么问题吗? 我尝试执行...
我们有一个长时间运行的 msbuild 脚本,我正在尝试加快速度。有没有办法让 msbuild 记录每个目标所花费的时间? 我查看了 xml 记录器,但它只是输出到...
我仍在尝试消除包含 cobol-Projects 的项目中对 cobol 编译器的需求。 是否可以创建以下构建行为: 如果配置是调试,则使用
我想让 System.ValueTuple 4.5 在我们的 TFS 服务器上的构建中工作。我的问题是否有可能将 System.ValueTuple 4.5.0 放到 TFS 2015 服务器上? 我安装了.NET Fra...
C# PS Cmdlet - 无法加载文件或程序集或其依赖项之一。系统找不到该文件
我正在用 C# 编写一个 PowerShell cmdlet,一切正常,直到我引用 nuget 中的库,然后抛出有关无法加载文件或程序集的错误。 就好像代码不是内置的...
以下是为我的开发环境生成的发布配置文件:
如果输出目录文件比源文件新,如何阻止 .csproj 文件的任何构建操作?
如果输出目录 DLL(例如 bin\Release 相对目录中)比所有源文件新,则尝试让 MSBuild 不执行任何操作。 是否有一个属性可用于停止构建/复制歌剧...
Web.config 转换 + Azure CI/CD 不起作用
我正在尝试使 Web.Config 转换发挥作用。 我有基本的 Web.config: ...(无关代码) 我正在尝试使 Web.Config 转换发挥作用。 我有基础 Web.config: ... (irrelevant code) <configuration> <connectionStrings> <add name="sampleConnStringName" connectionString="sampleConnString" providerName="System.Data.EntityClient" /> </connectionStrings> ... (irrelevant code) 然后我有Web.Debug.config: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add name="sampleConnStringName" connectionString="debugConnString" providerName="System.Data.EntityClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> </configuration> 和Web.Release.config: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add name="sampleConnStringName" connectionString="releaseConnString" providerName="System.Data.EntityClient" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> </connectionStrings> </configuration> 当然,当我在本地构建应用程序时,转换不起作用,但不幸的是,在使用 Azure YAML 管道时它也不起作用。 相关 YAML 部分: variables: BuildPlatform: 'any cpu' BuildConfiguration: 'Release' ... (irrelevant code) task: VSBuild@1 displayName: Build MyUi inputs: solution: "$(solution)" msbuildArgs: '/p:TransformConfigFile=true /p:DeployDefaultTarget=WebPublish /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactStagingDirectory)\MyUi" /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)\MyUi"' platform: "$(buildPlatform)" configuration: "$(buildConfiguration)" - task: PublishBuildArtifacts@1 displayName: Publishing MyUi to artifacts inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)\MyUi' ArtifactName: 'drop' publishLocation: 'Container' 即使在这一步(此管道中还有其他步骤,例如使用具有多个 CopyFiles@2 任务的 VM Azure 代理),在 artficats 中我可以看到 web.config 是..完全不同 - 它甚至不是原始的 Web.config ,它包含来自此解决方案中其他项目的 app.config 文件混合的连接字符串 - 无论我是否添加 web.debug.config 和 web.release.config,并更改主 web.config,web.config 都会发布到文物保持不变。 起初我以为 web.config 可能不会被复制,但在属性中它被标记为“始终复制”,所以情况并非如此。 也许有人以前遇到过这个问题,可以分享解决方案,或者更好的方法来解决这个问题? 编辑:Azure Pipeline 日志: PreTransformWebConfig: Found The following for Config tranformation: Web.config, bin\Web.config Creating directory "D:\a\1\s\2. UIlayer\MyUi\obj\Release\TransformWebConfig\transformed\". Creating directory "D:\a\1\s\2. UIlayer\MyUi\obj\Release\TransformWebConfig\transformed\bin\". Copying Web.config to obj\Release\TransformWebConfig\original\Web.config. Copying D:\a\1\s\2. UIlayer\MyUi\Web.config to obj\Release\TransformWebConfig\original\bin\Web.config. Copying D:\a\1\s\2. UIlayer\MyUi\Web.Release.config to obj\Release\TransformWebConfig\assist\Web.config. Copying D:\a\1\s\2. UIlayer\MyUi\bin\Web.Release.config to obj\Release\TransformWebConfig\assist\bin\Web.config. TransformWebConfigCore: Transforming Source File: D:\a\1\s\2. UIlayer\MyUi\Web.config Applying Transform File: D:\a\1\s\2. UIlayer\MyUi\Web.Release.config Output File: obj\Release\TransformWebConfig\transformed\Web.config Transformation succeeded TransformWebConfigCore: Transforming Source File: D:\a\1\s\2. UIlayer\MyUi\Web.config Applying Transform File: D:\a\1\s\2. UIlayer\MyUi\bin\Web.Release.config Output File: obj\Release\TransformWebConfig\transformed\bin\Web.config Transformation succeeded PostTransformWebConfig: Transformed Web.config using D:\a\1\s\2. UIlayer\MyUi\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config. Transformed D:\a\1\s\2. UIlayer\MyUi\Web.config using D:\a\1\s\2. UIlayer\MyUi\bin\Web.Release.config into obj\Release\TransformWebConfig\transformed\bin\Web.config. ... Copying obj\Release\TransformWebConfig\transformed\Web.config to obj\Release\Package\PackageTmp\Web.config. Copying obj\Release\TransformWebConfig\transformed\bin\Web.config to obj\Release\Package\PackageTmp\bin\Web.config. ... WebFileSystemPublish: Creating directory "D:\a\1\a\MyUi". Copying obj\Release\Package\PackageTmp\Web.config to D:\a\1\a\MyUi\Web.config. AutoParameterizationWebConfigConnectionStringsCore: Transforming Source File: D:\a\1\s\2. UIlayer\MyUi\obj\Release\Package\PackageTmp\bin\Web.config Applying Transform File: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='SqlConnectionString' %}" xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" /> </connectionStrings> </configuration> Output File: obj\Release\CSAutoParameterize\transformed\bin\Web.config Transformation succeeded PostAutoParameterizationWebConfigConnectionStrings: Auto ConnectionString Transformed obj\Release\Package\PackageTmp\Web.config into obj\Release\CSAutoParameterize\transformed\Web.config. Auto ConnectionString Transformed obj\Release\Package\PackageTmp\bin\Web.config into obj\Release\CSAutoParameterize\transformed\bin\Web.config. ... AutoParameterizationWebConfigConnectionStringsCore: Transforming Source File: D:\a\1\s\2. UIlayer\MyUi\obj\Release\Package\PackageTmp\Web.config Applying Transform File: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='SqlConnectionString' %}" xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" /> </connectionStrings> </configuration> Output File: obj\Release\CSAutoParameterize\transformed\Web.config Transformation succeeded Transforming Source File: D:\a\1\s\2. UIlayer\MyUi\obj\Release\Package\PackageTmp\bin\Web.config Applying Transform File: <?xml version="1.0"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <connectionStrings> <add connectionString="{% token='$(ReplacableToken_#(parameter)_#(tokennumber))' xpathlocator='name' parameter='$(name)-Web.config Connection String' description='$(name) Connection String used in web.config by the application to access the database.' defaultValue='$(connectionString)' tags='SqlConnectionString' %}" xdt:Transform="SetTokenizedAttributes(connectionString)" xdt:SupressWarnings="True" /> </connectionStrings> </configuration> Output File: obj\Release\CSAutoParameterize\transformed\bin\Web.config Transformation succeeded 根据 VSBuild 任务日志,配置转换后,它在构建过程中对 web.config 文件中的连接字符串进行了另一个自动参数化。请在 msbuildArgs 中添加 /p:AutoParameterizationWebConfigConnectionStrings=False 以跳过它。 我创建了一个旧的.net框架MVC应用程序,并且web.config按预期由Web.release.config转换: 我的任务如下: - task: VSBuild@1 displayName: Build solution inputs: solution: $(BuildParameters.solution) msbuildArgs: /p:DeployOnBuild=true /p:AutoParameterizationWebConfigConnectionStrings=False /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactStagingDirectory)\MyUi" /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)\MyUi" platform: $(BuildPlatform) configuration: $(BuildConfiguration)
什么原因会导致 MSIExec 错误 1619 '此安装包无法打开'
我正在尝试从一组示例程序中自动执行往返安装和卸载一组 MSI 文件(由 WiX 生成)。由于某种原因,.MSI 文件非常适合安装...
在 VS2019 解决方案/MSBuild 中覆盖 tsconfig.json?
我有一个 Visual Studio 解决方案(不是 VS Code),其中包含多个 tsconfig.json 文件,我希望这些文件在生产中表现不同。 我想要两个文件(也许更多),例如: tsconfig.json
你可以从命令行调用Slow Cheetah吗?我希望添加一个构建后事件来转换我的配置文件以适应各种不同的环境。 干杯 迪
使用 dotnet.exe 时,我在 .NET 项目的命令行构建中看到类似这样的消息: [项目名称]:工作负载更新可用。 运行“dotnet 工作负载列表”以获取更多信息。 我...
问题 我们在解决方案中使用配置转换。例如:调试、测试、登台、发布 但是,这些配置仅用于我们的 MVC 项目。所有的图书馆只使用...
需要在命令行中msbuild较低版本的C#项目,无需Visual Studio
我需要在命令行上msbuild较低版本的C#项目,我没有Visual Studios。 我在构建项目时遇到错误: Microsoft(R)构建引擎版本2.0.50727.42 [微...