错误MSB3103:Resx文件无效.找不到指定的模块



我正试图用Jenkins和build.ps1在docker内为FIRST时代构建c#项目。

详细错误:

C:\myproject\Properties\Resources.resx:错误MSB3103:无效的resx文件无法加载第123行位置5处的键入数据因为它在构造过程中引发了以下异常:找不到指定的模块[C:\myproject\myproject.Config.csproj]

我可以知道为什么会发生这种情况吗?有什么原因吗?

更新

这是resources.resx

121  : <data name="config_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
122  :   <value>..Resourcesconfig_icon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123  : </data>

这是Config.csproj

123  : <Reference Include="CommonServiceLocator, Version=2.0.4.0, Culture=neutral, PublicKeyToken=489b6accfaf20ef0, processorArchitecture=MSIL">
124  :<HintPath>..packagesCommonServiceLocator.2.0.4libnet46CommonServiceLocator.dll</HintPath>
125  :       </Reference>

我不确定这行"错误中没有"消息是否真的指向错误。

在.resx文件中的属性窗口(Ctrl+W,p(中,将持久性属性更改为:"嵌入.resx文件";以解决问题。

如果您使用docker镜像在Linux系统中构建项目,则所有资源名称都必须是小写的Related Answer

如果你也有这个问题,这可能对你有用。我花了一周时间:(

这个错误是因为服务器核心,核心无法识别那种格式。需要使用另一个窗口

这里是ref link=>dotnet构建失败

更新

这是我针对这个问题的最新docker文件,运行良好。看一看,如果你愿意的话可以参考。

它不仅需要安装MSBuild工具,还需要安装Management Build工具

#Base Image
FROM mcr.microsoft.com/windows:1903
#Copy Needed Folder
ADD ./setup c:/jenkins 
ADD ./jenkinsdata c:/jenkinsdata
#Jenkins
RUN ["msiexec.exe", "/i", "C:\jenkins\jenkins.msi", "/qn"]
#Java
RUN powershell start-process -filepath C:jenkinsjre-8u251-windows-i586.exe -passthru -wait -argumentlist "/s,INSTALLDIR=c:Javajre1.8.0_91,/L,install64.log"
RUN set JAVA_HOME=""c:\Java\jre1.8.0_91\"
RUN set PATH=%PATH%,%JAVA_HOME%bin
# Install Chocolatey
RUN @powershell -NoProfile -ExecutionPolicy Bypass -Command "$env:ChocolateyUseWindowsCompression='false'; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
RUN powershell choco feature enable -n=allowGlobalConfirmation
# Install Git
RUN powershell choco install git --allow-empty-checksums -y 
# Install DotNet 4.6.1
RUN powershell choco install netfx-4.6.1-devpack --allow-empty-checksums -y 
# Install MsBuild
RUN powershell choco install visualstudio2017buildtools --allow-empty-checksums -y 
# Install ManagementBuildTools
RUN powershell choco install visualstudio2017-workload-manageddesktopbuildtools --allow-empty-checksums -y 
# Delete files
RUN Powershell.exe -Command remove-item c:/jenkins –Recurse  

我也遇到了类似的问题,在我的情况下,路径名与文件系统不完全一样(区分大小写(。当在Linux/ubuntu/docker上构建时,dotnet资源嵌入程序无法在本地文件系统中找到完全匹配的内容。";找不到文件错误";在每个路径(文件夹和文件名(上使用完全相同的情况解决。显然,编译器在Linux上运行时能够将"更改为"/"。

最新更新