我试图建立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是否真的指向错误。
3条答案
按热度按时间j2datikz1#
在属性窗口(Ctrl+W,P)中,在.resx文件中将持久性属性更改为:“嵌入.resx文件”以解决问题。
如果使用Docker映像在Linux系统中构建项目,则所有资源名称必须为小写Related Answer
goqiplq22#
如果你也有这个问题,这可能对你有用。我花了一个星期的时间
此错误是由于服务器核心造成的,核心无法识别这种格式。需要使用另一个窗口。
下面是ref link =〉dotnet构建失败
更新
这是我最新的docker文件为这个问题和工作罚款。看看它和参考,如果你想。
它不仅需要安装MSBuild工具,还需要安装管理生成工具。
nkhmeac63#
我也遇到过类似的问题,在我的例子中,路径名与文件系统不完全相同(区分大小写)。当在Linux/ubuntu/docker上构建时,dotnet resource embedder无法在本地文件系统中找到完全匹配的文件。“找不到文件错误”已通过在每个路径上使用完全相同的大小写解决(文件夹和文件名)。显然,编译器在Linux上运行时能够将“”改为“/”。