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

bsxbgnwa  于 2023-03-17  发布在  Jenkins
关注(0)|答案(3)|浏览(277)

我试图建立c#项目与Jenkins和build.ps1内的docker为第一次。
详细错误:
C:\我的项目\属性\资源.resx:错误MSB3103:Resx文件无效。无法加载第123行位置5处的数据类型,因为它在构造期间引发了以下异常:找不到指定的模块[C:\myproject\myproject.Config.csproj]
我能知道为什么吗?任何原因?
更新
这是资源。resx

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

这是配置csproj

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

我不确定错误消息中的这一行no是否真的指向错误。

j2datikz

j2datikz1#

在属性窗口(Ctrl+W,P)中,在.resx文件中将持久性属性更改为:“嵌入.resx文件”以解决问题。
如果使用Docker映像在Linux系统中构建项目,则所有资源名称必须为小写Related Answer

goqiplq2

goqiplq22#

如果你也有这个问题,这可能对你有用。我花了一个星期的时间

此错误是由于服务器核心造成的,核心无法识别这种格式。需要使用另一个窗口。

下面是ref link =〉dotnet构建失败

更新

这是我最新的docker文件为这个问题和工作罚款。看看它和参考,如果你想。
它不仅需要安装MSBuild工具,还需要安装管理生成工具

#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:\jenkins\jre-8u251-windows-i586.exe -passthru -wait -argumentlist "/s,INSTALLDIR=c:\Java\jre1.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%\chocolatey\bin"
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
nkhmeac6

nkhmeac63#

我也遇到过类似的问题,在我的例子中,路径名与文件系统不完全相同(区分大小写)。当在Linux/ubuntu/docker上构建时,dotnet resource embedder无法在本地文件系统中找到完全匹配的文件。“找不到文件错误”已通过在每个路径上使用完全相同的大小写解决(文件夹和文件名)。显然,编译器在Linux上运行时能够将“”改为“/”。

相关问题