我有一个将用户控件加载到 .NET Web 应用程序中的应用程序。当我在我的开发机器上本地编译和测试应用程序时,它可以在我的机器上运行。 该项目在我们的构建服务器上使用 MSBuild 成功构建。但是,当我在构建服务器上部署 MSBuild 生成的 dll 时,应用程序加载控件时出现以下错误:
BC30456:“CreateResourceBasedLiteralControl”不是“ASP.usercontrols_somecontrol_ascx”的成员。
我看了一下,比较了我的机器上生成的 dll,并将其(查看文件大小)与构建服务器创建的 dll 进行了比较,发现文件大小存在差异。考虑到本地构建的代码和构建服务器上的代码是相同的,这是令人困惑的。我手动比较每个文件。所以我的问题是: 是什么导致了这个错误?MSBuild 的代码编译与 Visual Studio 编译代码时发生的情况有何不同?
我正在尝试将MSBuild.ExtensionPack.Web.Iis7AppPool任务与 GetInfo 任务操作一起使用。该任务的输出参数是SiteInfo属性,其类型是ITaskItem。这是财产,而不是收藏。
如何访问 SiteInfo 元数据?我可以用 $ 访问,但我只能得到网站名称。我尝试使用 %(SiteInfo.) 但没有成功。
我正在尝试此页面上的步骤。我已将 wix 二进制文件安装在本地计算机上的文件夹中。
所以我得到了一个由 wix VS 2010 插件创建的 wix 安装程序项目。我可以使用 VS 2010 IDE 来构建它并生成 msi 文件,但我不能在 VS 命令提示符下使用 Msbuild 做同样的事情。当 Msbuild 尝试编译时,出现一个错误,提示找不到candle.exe:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“file:///C:\MyFolder\Wix\candle.exe”或其依赖项之一。不支持操作。(来自 HRESULT 的异常:0x80131515)---> System.NotSupportedException:尝试从网络位置加载程序集,这会导致程序集在 .NET Framework 的早期版本中被沙箱化。默认情况下,此版本的 .NET Framework 不启用 CAS 策略,因此这种加载可能很危险。如果此加载不打算对程序集进行沙箱处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=155569。
我很确定 exe 位于正确的位置,因为 VS IDE 可以找到它。我想知道 Msbuild 缺少什么?
谢谢!
这是我的情况:
我有 VS2010 解决方案,其中包含 X 项目。
Wix 项目可以从所有编译的工件创建 msi。
我有构建机器\ Jenkins,首先编译(MSBuild .Net 4)所有解决方案,然后编译wix以将其打包到msi。
我如何将产品编号(例如 11.2.0.4789)注入到所有工件\dll中 - 尽可能简单?
编译解决方案时是否可以传递命令行参数?
我想在每次构建时构建我的 .tt 文件。我找到了这个解决方案(让 Visual Studio 在每个构建上运行一个 T4 模板,由Cheburek回答)并按照以下步骤运行它
Microsoft.TextTemplating.targets和<TransformOnBuild>true</TransformOnBuild>我的.csproj我现在的问题是:
我在 T4 文件中使用以下程序集导入:
<#@ assembly name="$(TargetPath)" #>
<#@ import namespace="My.Example.Namespace.Path" #>
Run Code Online (Sandbox Code Playgroud)
我需要这个,因为我需要访问在同一个项目中定义的类。但是现在(我认为因为 tt-transformation 是在构建时完成的第一件事)我不能使用这个命名空间导入,因为在构建时出现以下错误:
Error Compiling transformation: Metadata file '$(TargetPath)' could not be found.
Run Code Online (Sandbox Code Playgroud)
T4 文件在“正常”使用之前工作正常(保存 T4 文件时生成文件)
是否有可能以某种方式执行 T4 转换(作为最后一个构建步骤),以便我可以$(TargetPath)毫无问题地访问我的 T4 文件?
我有以下格式的多行字符串:
@"Text on Line 1
Text on Line 2."
Run Code Online (Sandbox Code Playgroud)
当我在 Visual Studio 中构建测试并使用 VS Developer cmd 运行时,它运行良好并比较预期字符串与实际字符串。
但是当使用 MSBuild 或 VS sln 在 teamcity 上运行时,它只喜欢我的多行字符串,当它们采用以下格式时,带有“\r\n”且没有 @ 符号。并将上述格式视为没有换行符。
"Text on Line 1\r\nText on Line 2."
Run Code Online (Sandbox Code Playgroud)
我用测试反编译了 dll 文件,teamcity 正在生成,而不是“\r\n”,逐字多行字符串中的所有新行字符都被替换为“\n”,因此可能是新行结尾的 teamcity 问题。
我可以继续更改我所有的字符串格式,但正在寻找避免它的解决方案。谢谢!
我不知道 MSbuild 脚本,现在没有时间学习它。我需要在成功构建结束时使用一种方法来重命名 dacpac 文件以包含当前正在构建的版本。
示例:(TfsDropLocation)\filename.dapac 到 (TfsDropLocation\filename.1.0.0.0.dacpac)
有没有办法做到这一点?
所以,我有一个针对 .NET Standard、.NET Core 和 .NET Framework 的 .csproj 文件:https : //github.com/dhilgarth/ReadGitVersionInformation/blob/master/src/ReadGitVersionInformation.csproj
我想从该项目文件创建一个 NuGet 包,因此在包含项目文件的文件夹中运行以下命令(该文件夹名为src):
NuGet.exe pack ReadGitVersionInformation.csproj
Run Code Online (Sandbox Code Playgroud)
这个命令行的结果是这样的:
试图从“ReadGitVersionInformation.csproj”构建包。
MSBuild 自动检测:使用来自“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin”的 msbuild 版本“15.7.179.6572”。
错误 NU5012:无法找到“bin\Debug\src\bin\Debug\”。确保项目已构建。
它正在寻找无意义的包bin\Debug\src\bin\Debug。
我在这里缺少什么?
我在运行 gulp 任务以转换我的配置文件时遇到问题。它报告以下错误:
error MSB4062: The "TransformXml" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v16.0\Web\Microsof t.Web.Publishing.Tasks.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confi rm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.
Run Code Online (Sandbox Code Playgroud)
任务的作用:
_msbuild.proj包含要转换的配置文件的文件。文件看起来是这样的(显然 Source、Transform 和 Destination 都是用真实数据填充的):<Project …Run Code Online (Sandbox Code Playgroud) 我正在尝试将无状态微服务应用程序部署到服务结构中,但我一开始部署就收到此错误。
项目面向运行时“win7-x64”,但没有为“Microsoft.NETCore.App”包解析任何特定于运行时的包。.NET Core 可能不支持此运行时。
如何解决这个问题?
msbuild azure-service-fabric asp.net-core service-fabric-stateless visual-studio-2019
msbuild ×10
c# ×3
.net ×2
wix ×2
asp.net ×1
asp.net-core ×1
build ×1
file ×1
itaskitem ×1
jenkins ×1
line-endings ×1
msbuild-4.0 ×1
msbuild-task ×1
multiline ×1
nuget ×1
rename ×1
t4 ×1
teamcity ×1
version ×1
versioning ×1
wix3.7 ×1