gwi*_*003 47 c# msbuild asp.net-mvc teamcity visual-studio-2015
我正在努力将我们的TeamCity项目从VS2012升级到VS2015,我遇到了编译MVC应用程序的问题.
旧的MSBuild(v4.0.30319.34209)在obj目录中生成一个文件,该文件MyApplication.Web.Mvc.dll.licenses
显然是构建所必需的,但我们不知道该文件实际用于什么.
新的MSBuild(v14.0.23107.0)不会创建此MyApplication.Web.Mvc.dll.licenses
文件,因此生成失败,并显示以下错误:
CSC error CS1566: Error reading resource 'MyApplication.Web.Mvc.dll.licenses'
-- 'Could not find file 'C:\BuildAgent\work\58ddf5f1234d8c8a\application\MyApplication\MyApplication.Web.Mvc\obj\Release\MyApplication.Web.Mvc.dll.licenses'.'
Run Code Online (Sandbox Code Playgroud)
我一直在机器上通过cmd手动运行构建,并且dll.licenses
每当使用旧的msbuild运行构建时都会创建文件,而不是新的构建.
该文件在运行VS2015的开发计算机上创建,但不在Teamcity构建服务器上创建.所以在我看来其他东西已经过时了?
Njå*_*ark 38
这里建议的解决方案是安装Windows 10 SDK.我们使用默认安装选项在运行Windows Server 2012 R2的TeamCity构建服务器上执行此操作,并在重新启动后,我们的构建再次运行.
希望这可以帮助 :)
小智 10
答案"安装Windows 10 SDK"是正确的 - 基本上.但是还有一个缺陷:这个SDK中存在多个版本:https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
通过撰写此评论:
检查VS 2015输出以及调用的LC.exe版本.然后在构建服务器上安装相应的SDK.不要忘记也安装Microsoft Build Tools 2015.
注意:我的构建目标是.net 4.5,但需要使用以上工具构建TeamCity.
小智 8
在我的例子中,TFS使用lc.exe
旧版SDK文件夹中的许可证编译器
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\lc.exe
Run Code Online (Sandbox Code Playgroud)
代替
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\LC.exe
Run Code Online (Sandbox Code Playgroud)
通过将以下msbuild参数添加到构建定义来解决此问题:
/p:FrameworkOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.2"
Run Code Online (Sandbox Code Playgroud)
通过在构建服务器上安装visual studio并添加visual studio构建步骤来替换2015 msbuild步骤,您还可以摆脱这些问题并使您的生活更轻松
我使用Atlassian Bamboo作为我们的构建服务器,但在此处描述的问题完全相同.我尝试了这个线程中的每个解决方案,但是没有任何工作可行.最后,我使用了Visual Studio 2017附带的新版本的MSBuild,突然我的许可证dll被正确创建了.在我的例子中,可以在以下位置找到MSBuild.exe:
C:\ Program Files(x86)\ Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe
归档时间: |
|
查看次数: |
13358 次 |
最近记录: |